0

假设有人在浏览器中输入以下 URL:

http://www.mywebsite.com/<script>alert(1)</script>

该页面也正常显示,并带有警报弹出窗口。我认为这应该会导致 404,但我怎样才能最好地实现呢?

我的 webapp 在 Tomcat 7 服务器上运行。现代浏览器会自动防止这种情况,但旧的浏览器,我在看你的 IE6,不会。

4

3 回答 3

1

听起来您实际上正在获得一个 404 页面,但该页面包含资源(在本例中为一段 JavaScript 代码)并且没有将 < 和 > 任何转换为​​它们各自的 HTML 实体。我在几个网站上看到过这种情况。

解决方案是创建一个自定义 404 页面,该页面不会将资源回显到页面,或者事先进行适当的 HTML 实体转换。您可以通过 Google 找到很多教程,这些教程应该可以帮助您做到这一点。

于 2012-10-23T10:28:01.807 回答
0

这是我所做的:

创建了一个高级 servlet 过滤器,它使用 OWASP 的 HTML sanitizer 来检查不可靠的字符。如果有的话,我会重定向到我们的 404 页面。

于 2012-10-24T10:06:41.550 回答
-1

你应该在你的 webapp 中放置一个过滤器来防止 XSS 攻击。

从 HttpServletRequest 对象中获取所有参数,并将任何参数替换为过滤器代码中以空格开头的值。

这样任何有害的 JS 脚本都不会到达您的服务器端组件。

于 2012-10-22T16:04:17.263 回答