我正在做一个基于 Java 的 Web 应用程序。它允许用户输入显示给其他用户的内容。
自然出于安全原因,我必须过滤用户内容以防止 XSS 和其他攻击。
我知道过滤用户内容是一个被广泛讨论的话题。我在 SO 上找到了很多帖子,但它们与理论讨论、PHP、想法等有关。我需要一个 Java 库来避免重写/发明一切。我觉得那里一定有一个。
我可以使用这样的库吗?
感谢您提供任何信息!
如果你想清理用户输入以防止 XSS,那么OWASP在他们的AntiSamy项目中提供了标准实现。
在名为owasp-java-html-sanitizer 的谷歌代码上有一个更好的实现,这允许您以编程方式定义策略,然后通过策略运行可疑的 HTML,这将消除所有废话。
这是他们网站上的一个例子:
PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
String safeHTML = policy.sanitize(untrustedHTML);
这将创建一个策略,只允许可疑 HTML 中的格式和链接,其他所有内容都将被删除。