转自?http://www.haogongju.net/art/717448
?
代码相关: 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.将项目中未使用到的链接全部删除(不要小看这个,安全评估过不了的)
?