Java:Owasp AntiSamy vs Owasp-java-html-sanitize

10 java html-sanitizing owasp

我现在正在寻找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项目的代码.它具有相当高的性能和低内存利用率.

  1. 此代码提供DOM模式下AntiSamy清理速度的4倍,SAX模式下AntiSamy速度的2倍
  2. 非常好用.它允许简单的编程POSITIVE策略配置(见下文).没有XML配置.
  3. 它没有遭受Niko HTML解析器带来的各种安全漏洞
  4. 由我自己和来自Google AppSec团队的Mike Samuel积极维护
  5. 已经超过80%的AntiSamy单元测试加上更多.
  6. 只有3个相关的jar文件
  7. 这是一个纯Java 6项目,不支持Java 5或更低版本(请注意AntiSamy支持1.4+).

我们目前正在阿尔法,但很快就会投入生产.

示例性程序策略示例:

     // 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");
Run Code Online (Sandbox Code Playgroud)

你怎么看?是一个有点尊重的竞争是一件好事吗?

  • 吉姆