JavaWeb应用配置文件安全解决方案

这里主要说说JavaWeb应用的配置文件安全,通常JavaWeb应用多多少少会有一些配置文件,其中数据源的配置则是关系到数据库的安全,另外还有一些基于文件的权限配置,应用程序的一些系统参数。鉴于这样的情况,如果配置文件被非法访问者拿到,这对于应用的安全和数据安全产生极大的危害。

        常见的一种情况就是:非法用户通过一些漏洞扫描工具,探测应用的漏洞,然后上传脚本,遍历应用的文件目录结构来获取更多有利于攻克系统的信息。对于应用程序而言,可能使用第三方框架,也可能独立开发一些关键模块,种种这些仍然可以确定和确信漏洞是存在的。


       保护应用程序的敏感数据则极为重要,这些敏感数据则主要是:数据源的配置信息,系统参数,FTP配置信息,权限访问配置等。


       面对上面面临的配置文件安全问题,下面讲分享一种解决方案(配置文件加密外置法)。配置文件加密外置法即就是对配置文件的信息进行加密,然后配置文件存放在与应用程序目录无关的目录(地方)。

      从上面对配置文件加密外置的描述可以看出这种方式有明显的好处:

      1.配置文件加密,使得配置文件的信息得到有效的包含

      2.配置文件外置,使得通过探测应用程序目录结构并不能轻易获取配置文件

      3.配置文件的访问权限得到有效的控制


      下面是一张配置文件加密外置法的整体思路

       wKioL1PYq_myGyicAAHbFfLkgnc435.jpg



       参照上图说明一下每个环节:

       1.开始,准备配置文件信息

       2.配置环境变量其值作为加密因子

       3.使用加密工具对配置文件进行加密(依赖1,2中的信息)

       4.输出加密后的密文文件(内容组成:加密信息,加密参数)

       5.配置环境变量其值是密文文件名(即密文文件的路径)

       6.应用程序中使用5中的环境变量,读取密文文件

       7.使用解密工具对密文文件解密,输出明文信息

       8.应用程序使用明文信息

       上面8个环节:1-4是生成加密的配置文件, 5-8是应用程序使用配置文件。

      

        另外为了JavaWeb应用的进一步安全,可以将加密解密的工具包与应用程序分离,比如放置在JRE或者Web应用服务器下的CLASSPATH下等。


       文中主要讲述JavaWeb应用中敏感数据配置文件的保护策略,至于其他情况则没有考虑,一个Web应用的安全本身涉及到多方面的安全保护,如应用程序的编码,Web服务器相关配置,部署主机,网络,数据库等。



本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1532884,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 免费cms_开源 免费 java CMS

Bug修复:1.菜单管理:删除操作按钮后不能直接进行删除菜单操作。2.删除单位时操作记录不显示单位名称问题。3.站点管理:改变所属站点增加改变为一级站点功能,上传非图片logo时虽然提示但仍上传成功问题。4.模板文件管理:点击查看/下…

Android加载大图片不OutOfMemoryError

Android加载图片时,对于分辨率小,配置低的机子,很容易发生OutOfMemoryError。手机的内存比图片的大很多,怎么会这样? 在设置Android虚拟机的内存时: RAM:模拟器的内存空间 VM Heap:…

任务计划、chkconfig工具、systemd管理服务、unit、target

比如备份数据或者重启服务。 crontab -u、-e、-l、-r(删除) 格式:分 时 日 月 周 user command 文件/var/spool/cron/username 分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7 可用格式1-5…

vue打卡日历_Vue日历

new Vue({el: ‘#calendar‘,data: {currentDay: 1,currentMonth: 1,currentYear: 1970,currentWeek: 1,days: [],addDay: [],},created: function() {this.initData(null);var $this this;//请求数据$.ajax({url: "这里填接口名称",type: "POST",data: {…

android Intent机制详解

原文出处:http://blog.csdn.net/t12x3456/article/details/7688154 什么是Intent Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种…

python基本数据类型(四)-集合与运算符-python3笔记

1.集合 2.字典 3.运算符优先级 1.集合 创建:() set() 注意:创建空的集合要用set() 特点:元素唯一,无序 运算: &(交集) |(并集) -(差集&#xff0…

Android的权限

Android有四种权限: 1、Permission 权限 2、Root权限 3、Bootloader的解锁 4、Radio(基带)解锁 ------------------------------------ 1、Permission 我们在开发中经常使用到 Permission 权限,即一系列"Android.Permission.*"对象。…

hive2 java连接_用Java代码通过JDBC连接Hiveserver2

1.在终端启动hiveserver2#hiveserver22.使用beeline连接hive另外打开一个终端,输入如下命令(xavierdb必须是已经存在的数据库)#beeline -u jdbc:hive2://localhost:10000/xavierdb -n hive -p hive3.添加maven依赖org.apache.hivehive-jdbc1.1.0junitjunit4.9org.ap…

java 向上抛异常_Java 异常的处理方式throws

在昨天的文章《Java 异常的分类与处理》中我们简单地了解了一下在方法声明的位置上使用throws关键字向上抛出异常,下面深入讲解异常的第一种处理方式throws。下面深入讲解异常的第一种处理方式throws。看以下例子:import java.io.*;public class Excepti…

Jquery mobile 解决IOS9selectli闪退问题

升级IOS9后&#xff0c;JQuery mobile 出现了个bug问题。<select>&#xff0c;<ul><li></li></ul> 出现闪退。 解决方法&#xff1a; 必须加在 jquery.js 和 jquerymobile.js 中间 <script src"......../...../jquery-2.0.0.min.js&qu…

JAVA通过SSL证书创建MS AD账户及设置密码

近期由于工作需要整理一下自动化的东西&#xff0c;因为公司去年上线了OA&#xff0c;所以公司的入职系统会提交用户的信息到IT部门&#xff0c;最早的做法是入职到了&#xff0c;IT部门收集用户信息在AD中创建对应的用户信息&#xff0c;所以为了提高管理员的工作效率&#xf…

java 实体类规范_实体类的规范

1.Boolean类型1.1.使用Boolean类型,而不是Byte类型1.2.数据库字段名使用is_开头1.3.实体类字段名不使用is开头例子/*** 是否为新消息*/Column(name "is_new_message", nullable false)private Boolean newMessage;2.Enum类型1.使用Convert注解, 并指定coverter类例…

01电话拨号器

实例非常简单&#xff0c;意在体验Android的Intent&#xff0c;用户权限。 Intent 见 http://blog.csdn.net/zengmingen/article/details/49586045 用户权限 见 http://blog.csdn.net/zengmingen/article/details/49586569 --------------------------------------------------…

微信小程序笔记六模块化 —— module.exports

微信小程序中所有 js 文件作用域皆为独立的&#xff0c;每一个 js 文件即为一个模块。模块与模块之间的引用通过 module.exports 或 exports 对外暴露接口。 注意&#xff1a; exports 是 module.exports 的一个引用&#xff0c;因此在模块里边随意更改 exports 的指向会造成未…

java常用的统计_(OJ)Java常用类-统计数字次数

统计数字次数Problem Description命令行输入一个由数字组成的任意字符串,统计出每个数字出现的次数。Input Description1239586838Output Description0 counts:01 counts:12 counts:13 counts:24 counts:05 counts:16 counts:17 counts:08 counts:39 counts:1解题代码import ja…

02发送短信

使用SmsManager发送短信java.lang.Object ↳android.telephony.SmsManagerManages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().管理短信操作&#xff0c;如发送数据&#xff…

Python运行环境与异常处理

Python的命令格式&#xff1a; python [option] ... [-c cmd | -m mod | file | -] [arg] ... 选项描述-J 启动将从Python3中删除或更改某些功能的警告 -B阻止在导入时创建.pyc或.pyo文件-E忽略环境变量-h打印所有可用命令行选项的列表-i在程序执行后进入交互模式-m module以脚…

Java应用一般架构

原文链接&#xff1a;http://www.iteye.com/news/31115 当我们架设一个系统的时候通常需要考虑到如何与其他系统交互&#xff0c;所以我们首先需要知道各种系统之间是如何交互的&#xff0c;使用何种技术实现。 1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语…

Mac MongoDB未正常关闭导致重启失败

你可以删除掉mongod.lock文件&#xff0c;然后重新启动&#xff0c;如果还是不可以&#xff0c;你可以查看一下进程&#xff0c;然后杀掉&#xff1a; ps -aef | grep mongo sudo kill 1076 再重启数据库即可。

微信企业号让IOS不要识别数字为电话号码的方法

最近在开发一个联系人查看功能时&#xff0c;发现IOS端把 8位&#xff0c;11位的数字识别为了 电话号码。 本来是黑色的样式&#xff0c;变成了蓝色的样式&#xff0c;还添加了下划线。点击一下&#xff0c;还可以拨打电话。 这个问题要改&#xff0c;解决方法很简单&#xf…