org.apache.commons.lang.StringEscapeUtils 进行输入框内容处理 [StringEscapeUtils.escapeSql(str);StringEscapeUtils.escapeHtml(str)]
1、跨站脚本攻击(Cross Site Scripting)
-解决方案-
xss之所以会发生,是因为用户输入的数据变成了代码,因此需要对用户输入的数据进行html转义处理,将其中的“尖括号”,“单引号”,“双引号”之类的特殊字符进行转义编码。
2、SQL注入
报错时,尽量使用错误页面覆盖堆栈信息
1 <error-page> 2 <error-code>400</error-code> 3 <location>/error400.jsp</location> 4 </error-page>
3、跨站请求伪造(Cross-Site Request Forgery)
-解决方案-
1、将cookie设置为HttpOnly
server.xml如下配置
1 <Context docBase="项目" path="/netcredit" reloadable="false" useHttpOnly="true"/>
web.xml如下配置
1 <session-config> 2 <cookie-config> 3 <http-only>true</http-only> 4 </cookie-config> 5 <session-timeout>30</session-timeout> 6 </session-config>
2、增加token
表单中增加一个隐藏域,提交时将隐藏域提交,服务端验证token。
3、通过referer识别
根据Http协议,在HTTP头中有一个字段交Referer,它记录了HTTP请求的来源地址。如果攻击者要实施csrf攻击时,必须从其他站点伪造请求,当用户通过其他网站发送请求时,请求的Referer的值是其他网站的网址。因此可以对每个请求验证其Referer值即可。
4、文件上传漏洞
在网上经常会操作,上传图片、文件到服务端保存,这时候,如果没有对图片文件做正确的校验,会导致一些恶意攻击者上传病毒,木马,外挂等等到服务器,窃取服务器信息,甚至导致服务器瘫痪。
因此需要对上传的文件进行校验,很多文件起始的几个字节是固定的,因此,根据这几个字节的内容,就可以判断文件的类型,这几个字节也被称作魔数。
设置类型白名单