Ответ 1

OWASP java html sanitizer - это более новый проект, чем антисамия. Цели этих проектов одинаковы - дезинфекция HTML для предотвращения XSS и фильтрации другого нежелательного контента. Однако их подход отличается. Каждый подход имеет свои компромиссы, поэтому вы должны выбрать решение в зависимости от ваших требований. В двух словах html sanitizer проще в использовании и быстрее, с другой стороны, он менее гибкий. Однако это должно быть достаточно для большинства пользователей. Обратите внимание, что антисамия может обрабатывать не только html, но и css.

Вот сообщение из списков рассылки owasp, требующих создания проекта дезинфицирующего средства HTML, включая список некоторых его преимуществ и отличий от антисамии.

Я хотел бы начать новый проект OWASP, который очень похож на AntiSamy.

Я хотел бы назвать этот проект "OWASP Java HTML Sanitizer" и уже имеющийся код:

https://code.google.com/p/owasp-java-html-sanitizer/

Это код проекта Caja, который был пожертвован Google. это довольно высокая производительность и низкое использование памяти.

  • Этот код обеспечивает 4X скорость дезинфекции AntiSamy в режиме DOM и 2X скорость AntiSamy в режиме SAX.
  • Очень проста в использовании. Он позволяет простую программную конфигурацию POSITIVE (см. Ниже). Нет конфигурации XML.
  • Он не страдает от различных недостатков безопасности, с которыми столкнулся HTML-парсер Niko.
  • Активно поддерживается мной и Майком Самуэлем из команды Google AppSec.
  • Уже проходит 80% тестов AntiSamy и еще много.
  • Только 3 зависимых файла jar
  • Это чистый проект на 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");

Как вы думаете? Является ли небольшое уважительное соревнование хорошим?

  • Джим