创建白名单以防止基于Java的应用程序中的XSS漏洞

时间:2016-07-27 13:13:35

标签: java security servlets filter xss

我正在编写一个servlet过滤器来保护站点免受XSS漏洞的攻击。我需要一个可以对HTTPRequest应用的白名单,以便我可以避免任何恶意脚本和字符。

我可以将正则表达式用作白名单吗?我应该使用哪个正则表达式,以便它包含URL的所有字符。任何其他解决方案也是受欢迎的。

请建议我如何为应用程序的URL创建白名单。

提前致谢。

更新 - 请不要标记其投票。在评论中查看我的研究。我已经研究了很多这方面的内容。

2 个答案:

答案 0 :(得分:1)

您需要使用真正的HTML解析器来阻止XSS,例如JSoup。不要使用正则表达式。

这是我为Spring Security制作的一个简单的过滤器,它阻止(希望)所有入站XSS:

http://blog.databasepatterns.com/2015/08/simple-inbound-xss-filter-for-spring.html

您可以针对非Spring环境修改它,或允许某些标记,就像Hibernate Validator的@SafeHTML注释一样。

答案 1 :(得分:0)

您可以结合使用ESAPI,JSoup(具有白名单功能)和JSR-303来对抗XSS。

在这里查看我的回复:How to Modify QueryParam and PathParam in Jersey 2