我现在正在寻找html净化器库.而且我发现有两个"owasp"库.首先是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project.
我的问题是 - 比较它们时的利弊是什么.
Voj*_*cka 17
OWASP java html sanitizer是比antiisamy更新的项目.这些项目的目标是相同的 - 清理HTML以防止XSS并过滤掉其他不需要的内容.然而他们的方法是不同的.每种方法都有其权衡,因此您应根据自己的要求选择解决方案.简而言之,html消毒剂使用起来更简单,速度更快,另一方面它的灵活性较低.但是对于大多数用户来说它应该足够好了.请注意,antisamy不仅可以处理html,还可以处理css.
以下是来自owasp邮件列表的消息,请求创建HTML清理程序项目,包括其中一些优点的列表以及与反讽的差异.
我想开始一个与AntiSamy非常相似的新OWASP项目.
我想将此项目称为"OWASP Java HTML Sanitizer",并且已在以下位置提供代码:
https://code.google.com/p/owasp-java-html-sanitizer/
这是由Google捐赠的Caja项目的代码.它具有相当高的性能和低内存利用率.
- 此代码提供DOM模式下AntiSamy清理速度的4倍,SAX模式下AntiSamy速度的2倍
- 非常好用.它允许简单的编程POSITIVE策略配置(见下文).没有XML配置.
- 它没有遭受Niko HTML解析器带来的各种安全漏洞
- 由我自己和来自Google AppSec团队的Mike Samuel积极维护
- 已经超过80%的AntiSamy单元测试加上更多.
- 只有3个相关的jar文件
- 这是一个纯Java 6项目,不支持Java 5或更低版本(请注意AntiSamy支持1.4+).
我们目前正在阿尔法,但很快就会投入生产.
示例性程序策略示例:
Run Code Online (Sandbox Code Playgroud)// A VERY SIMPLE WHITELISTING POLICY final ImmutableSet<String> okTags = ImmutableSet.of( "a", "b", "br", "div", "i", "img", "input", "li", "ol", "p", "span", "ul"); final ImmutableSet<String> okAttrs = ImmutableSet.of( "div", "checked", "class", "href", "id", "target", "title", "type");你怎么看?是一个有点尊重的竞争是一件好事吗?
- 吉姆