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