Ответ 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");
Как вы думаете? Является ли небольшое уважительное соревнование хорошим?
- Джим