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

标签 java security servlets filter xss

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

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

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

提前致谢。

更新 - 请不要对其投反对票。请参阅评论中我的研究。我已经对此进行了很多研究。

最佳答案

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

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

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

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

关于java - 创建白名单以防范基于 Java 的应用程序中的 XSS 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38614036/

相关文章:

java - 在 Intellij Idea 中使用 sbt 进行构建和导入时出现 NoClassDefFoundError

java - 如何使 Java 可以使用任意字体文件?

java - 如何在jsp或servlet中将 "http headers"从一台主机转发到另一台主机?

java - 如何在 Eclipse 控制台中获得没有换行效果的回车?

Java : Replace a specific char in string to it is index

web-services - 如何在生产中处理 SSL 服务器证书?

security - Grails,从 Acegi 升级到 Spring 安全插件

c - 为什么 free() 在释放内存之前不将其清零?

jakarta-ee - 从 CDI 扩展访问 servlet 上下文参数

java - 如何通过浏览器限制对 Servlet 的访问