假设有人在浏览器中输入以下网址:
http://www.mywebsite.com/<script>alert(1)</script>
页面也会正常显示,同时显示警告弹出窗口。我认为这应该会导致404,但我如何最好地实现这一目标?
我的webapp正在Tomcat 7服务器上运行。现代浏览器会自动防止这种情况,但是较旧的浏览器会让你看到IE6,不会。
答案 0 :(得分:1)
听起来你实际上正在获得404页面,但该页面包含资源(在这种情况下是一段JavaScript代码)并且不会对&lt;和&gt;到他们各自的HTML实体。我已经在几个网站上看到过这种情况。
解决方案是创建一个自定义404页面,该页面不会将资源回显给页面,或者预先进行正确的HTML实体转换。您可以通过Google找到大量可以帮助您完成此任务的教程。
答案 1 :(得分:0)
这就是我的所作所为:
创建了一个高级servlet过滤器,它使用OWASP的HTML清理程序来检查狡猾的字符。如果有,我会重定向到我们的404页面。
答案 2 :(得分:-1)
您应该在webapp中添加一个过滤器以防止XSS攻击。
从HttpServletRequest对象获取所有参数,并用过滤器代码中带空格的值替换任何参数。
这样任何有害的JS脚本都无法到达服务器端组件。