这里主要说说JavaWeb应用的配置文件安全,通常JavaWeb应用多多少少会有一些配置文件,其中数据源的配置则是关系到数据库的安全,另外还有一些基于文件的权限配置,应用程序的一些系统参数。鉴于这样的情况,如果配置文件被非法访问者拿到,这对于应用的安全和数据安全产生极大的危害。
常见的一种情况就是:非法用户通过一些漏洞扫描工具,探测应用的漏洞,然后上传脚本,遍历应用的文件目录结构来获取更多有利于攻克系统的信息。对于应用程序而言,可能使用第三方框架,也可能独立开发一些关键模块,种种这些仍然可以确定和确信漏洞是存在的。
保护应用程序的敏感数据则极为重要,这些敏感数据则主要是:数据源的配置信息,系统参数,FTP配置信息,权限访问配置等。
面对上面面临的配置文件安全问题,下面讲分享一种解决方案(配置文件加密外置法)。配置文件加密外置法即就是对配置文件的信息进行加密,然后配置文件存放在与应用程序目录无关的目录(地方)。
从上面对配置文件加密外置的描述可以看出这种方式有明显的好处:
1.配置文件加密,使得配置文件的信息得到有效的包含
2.配置文件外置,使得通过探测应用程序目录结构并不能轻易获取配置文件
3.配置文件的访问权限得到有效的控制
下面是一张配置文件加密外置法的整体思路
参照上图说明一下每个环节:
1.开始,准备配置文件信息
2.配置环境变量其值作为加密因子
3.使用加密工具对配置文件进行加密(依赖1,2中的信息)
4.输出加密后的密文文件(内容组成:加密信息,加密参数)
5.配置环境变量其值是密文文件名(即密文文件的路径)
6.应用程序中使用5中的环境变量,读取密文文件
7.使用解密工具对密文文件解密,输出明文信息
8.应用程序使用明文信息
上面8个环节:1-4是生成加密的配置文件, 5-8是应用程序使用配置文件。
另外为了JavaWeb应用的进一步安全,可以将加密解密的工具包与应用程序分离,比如放置在JRE或者Web应用服务器下的CLASSPATH下等。
文中主要讲述JavaWeb应用中敏感数据配置文件的保护策略,至于其他情况则没有考虑,一个Web应用的安全本身涉及到多方面的安全保护,如应用程序的编码,Web服务器相关配置,部署主机,网络,数据库等。