使用哪个html清理库?

时间:2013-12-03 15:17:02

标签: xss

我正在开发一个功能,用户可以输入有效的html标记和css,并呈现用户网页。问题是我使用的是OWASP AntiSamy Java库,它剥离了大多数现代HTML5标签和CSS3属性。我查看了策略文件,它已经过时了。我一直在寻找其他的Sanitization Libraries,比如HTML Sanitizer和Google Caja,但我觉得它没有做任何额外的事情。当您发现剥离有效标签和样式的问题时,您仍然需要更新策略文件。

我一直在寻找合适的解决方案。有关使用哪个库的任何建议?切换到HTML Sanitizer或Google Caja是否有任何优势。不确定是否有人更新了Antisamy策略文件并开源,以便它支持新标记和样式属性。

Varun的

1 个答案:

答案 0 :(得分:1)

我对jsoup

有很好的体验

您只需要一小段代码:

String safe = Jsoup.clean(unsafe, Whitelist.basic());

您可以非常轻松地将标记和属性添加到白名单对象中,但我发现它不支持命名空间标记。

jsoup jar本身很小(200 + KB),与owasp java html sanitizer不同,它不依赖于1.6MB的Guava库。