信息安全保障

泽元软件提供了全面的应用层安全机制,针对操作系统、数据库、中间件、应用系统进行安全配置并扫描。在系统底层杜绝文件越权访问、SQL注入、跨站脚本等安全问题。

1. SQL注入检查

检查系统中的非ORM的数据库操作,确保没有SQL注入的可能。确保非ORM的SQL语句全部基于QueryBuilder机制的,QueryBuilder要求所有的SQL条件都是基于参数的,不允许直接将字符串拼接到SQL语句中。QueryBuilder是对参数化的Statement的封装,它将传入的参数作为字符串传入Statement,防止传入的参数侵入到SQL逻辑中并获得执行,从而达到防止SQL注入的目的。

2. 跨站脚本检查

XSS(跨站脚本攻击Cross Site Scripting) 攻击者提交恶意HTML代码到服务器端,如果服务器端未经检查即输出到HTML页面,则其他用户浏览该页之时,嵌入其中Web里面的HTML代码会被执行,从而达到攻击者的特殊目的。XSS是常见的网站安全问题。

将在本项目中实施严格的参数检查机制,对XSS进行了周密的防范。任何传递给服务器的HTTP请求(无论是get还是post请求),请求中的参数默认只允许字母、数字、下划线等无危害字符,不允许有单引号和双引号等特殊字符,如果参数中有特殊字符,则系统自动拦截请求并重定向到错误页面。如果页面确实需要接受含有特殊字符的参数,则相应的后台方法需要使用@Verify注解作特别声明,并在方法中检查参数是否合法或进行HTML转义存储。

3. 防止非法文件上传

本项目将采用基于HTML5的上传控件,避免使用基于Flash的上传控件。该控件在文件上传前检查了文件的扩展名,只允许扩展名在指定的扩展名列表中的文件上传到服务器。同时在服务器后台在文件保存到磁盘之前也再次检查了文件扩展名,只有扩展名被允许的文件才会写入到磁盘。

系统中所有上传的文件保存之前还会检查文件路径,只允许保存在指定的目录下,该目录一般由WEB服务器负责解析,只支持静态的.html和.shtml文件,不支持PHP/JSP等动态页面执行。

另外,系统被设计成可以在低级别操作系统权限下运行,系统只需要对应用目录和发布文件所有目录拥有读写权限即可正常运行。系统建议运行在非root用户下。

通过以上措施,系统能够很好地防止非法上传程序到服务器,防止服务器被安装WebShell或被挂马。