1

我知道之前有人问过这个问题,但我想弄清楚如何防止我的 Spring MVC Web 应用程序受到 XSS 攻击。

1)我将以下内容添加到我的 web.xml

<context-param>
    <param-name>defaultHtmlEscape</param-name>
    <param-value>true</param-value>
</context-param>    

2) 在将表单命令对象中的每个属性保存到数据库之前,我是否还应该使用 Commons StringEscapeUtils.escapeHtml() ?我是否也需要在某个时候逃脱?

谢谢

4

3 回答 3

2

即使默认情况下转义 html 会在许多情况下停止 XSS,但肯定在某些情况下它不起作用。在此处查看示例: http ://erlend.oftedal.no/blog/?id= 124 我建议您查看 OWASP XSS 预防备忘单。它解释了何时需要使用不同的转义。关于 2 在将其放入数据库之前不要逃避。转义例程可能有错误,您不能确定每次都在相同的上下文中使用数据

于 2012-05-08T04:54:21.360 回答
2

我更喜欢您尝试 HDIV api 来确保您的应用程序的这种数据安全性。它可以防止对您的 Web 应用程序的这种和其他 7 种不同的可能攻击。我目前也在探索与 Spring Framework 一起使用的相同 API。

点击此处查看 HDIV 主页。

希望这对您有所帮助。

于 2012-05-08T09:08:49.373 回答
2

现在,我决定清理我的数据并删除所有 HTML 标记以避免 JavaScript 攻击。

我正在使用 Jsoup api 来做到这一点。

http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

于 2012-05-11T13:07:39.743 回答