我知道之前有人问过这个问题,但我正试图弄清楚如何防止我的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()?我是否还需要在某些方面取消观看?
由于
答案 0 :(得分:2)
即使默认情况下转义html会在很多情况下停止XSS,但肯定会出现无效的情况。在这里查看示例: http://erlend.oftedal.no/blog/?id=124 我建议你看看OWASP XSS预防作弊表。它解释了何时需要使用不同的转义。 关于2在将其放入数据库之前不要逃避。转义例程可能有错误,您无法确定每次都在相同的上下文中使用数据
答案 1 :(得分:2)
我更喜欢你在你的应用程序上尝试使用HDIV api来实现这种数据安全性。它可以防止对您的Web应用程序进行此类和其他7种不同的攻击。我目前正在探索与Spring Framework一起使用的相同API。
Click here for HDIV home page.
希望这会对你有所帮助。
答案 2 :(得分:2)
目前,我决定清理我的数据并删除所有HTML标记以避免JavaScript攻击。
我正在使用Jsoup api来做到这一点。