最近系统要上线,收到一份系统技术规范,与安全相关的。这里总结一下:
代码相关:
1.sql注入,这个大家估计都知道,用预处理解决.这个问题很简单,但是在编程时只求完成任务,很多地方都没注意,在日后编程中要认真了。
2.cookie,用户登录时将用户名与密码加密后存放在cookie中,虽然加过密但是在firebug之类的工具下用document.cookie还是可以看到密文的,需要设置httponly.在servlet3.0规范中可以设置Cookie对象的httponly属性。对于之前的版本,需要直接response.setHeader来设置cookie,在字符串最后最后加上httponly就行了(由于最后为了简单直接将cookie去掉了,代码丢失),测试中发现使用这种方法只能为一个cookie设置httponly.一般来说用户与密码会分为两个cookie对象,那么用response.setHeader要调用两次,前一次会被后面的调用override,如果只调一次,将username与password都加上去,测试时发现不能成功。
3.flash安全配置,只允许信任网站的请求
4.尽管不使用第三方链接形式的js,iframe防止xss
tomcat相关:
一.tomcat默认的管理界面及doc信息要禁用
1.取消tomcat默认主页,禁止管理及文档页面的访问(解决可直接查看文件列表的目录、URL存在内部IP地址泄露、URL存在电子邮件地址模式、部分的无效链接、系统路径信息泄露)
a)tomcat/conf/server.xml
找到
<Host name=”localhost” appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
在后面添加<Context path=”” docBase=”smartspeed” debug=”0″ reloadable=”true” />,将smartspeed设为tomcat默认主页,可以直接ip:port访问主页
b)删除tomcat/webapps下面的ROOT及tomcat-docs目录
tomcat/webapps/ROOT tomcat/webapps/tomcat-docs
禁止管理页面与文档页面的使用
2.禁用不安全的HTTP方法(禁用掉PUT/DELETE/HEAD/OPTIONS/TRACE)
在tomcat/conf/web.xml的结束标签</webapp>之前加入
<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint></auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>
3.将项目中未使用到的链接全部删除(不要小看这个,安全评估过不了的)