1. Apache JServ protocol service漏洞(服务器问题)
问题出在Tomcat的8009端口,错误的提示是8009端口上运行着tcp协议。
解决办法:只能是通过关闭8009端口来实现,但是关闭端口之后对Tomcat有影响。
2. HTML form without CSRF protection
问题出在表单提交没有保护,可以伪造一个表单进行提交。
解决办法:在提交表单的jsp界面产生一个随机数,把这个随机数放到session中传递,同时也放到form表单中以input的方式传递(注意这里要把input的type类型设置为hidden,并且一定要放在提交按钮之前),然后在后台,对比从前台传递的参数和从session中获得参数,如果不一致,说明是伪造的表单。拒绝访问。(此方法我以register.jsp进行了验证,有效果。)
3. Slow Http Denial of Service Attack(服务器问题)
问题出在http头部的限定长度过大,攻击者可以通过链接服务器之后,缓慢的发送数据来保持持续链接,这样来控制它的最大并发量。
解决办法:修改Tomcat的server.xml的8080端口,把里面的connectionTimeout=”20000”修改成connectionTimeout=”8000”,问题解决,但不确定对程序有无影响,目前来看没发现有其他影响。还可以修改http头部的大小限制,因为已经解决问题,就没有再去修改头部大小。
4. User cerdentials are sent in clear text(感觉不用修改)
问题是说表单中的数据一明文的形式传递,但是扫描到的都是在表单中用post的方式传递,没有找到解决此漏洞的方法。
5. Application error message 和 Error message on page
问题出在程序出现500错误时,有关服务器的问题,会展现在浏览器的页面上Tomcat的路径,这样就会把服务器的路径暴露在攻击者面前。
解决办法:当出现500错误时,自定义界面。在Tomcat的web.xml里,最下面也就是</web-app>之前添加如下内容
<error-page>
<error-code>500</error-code>
<location>/error500.html</location>
</error-page>
然后,在在程序的web-inf下面新建一个error500.html,自定义当出现500错误时的界面。