Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
nahsra__antisamy_CVE-2017-14735_1-5-6 — Библиотека Java для быстрой и настраиваемой очистки HTML из ненадёжных источников. Использует сканирование на основе политик для удаления вредоносного JavaScript и CSS, предотвращая XSS-атаки в веб-приложениях. | Kitploit
Инструменты/GitHubGitHub/shoucheng3/nahsra__antisamy_cve-2017-14735_1-5-6
Статический анализАнализ уязвимостейАнализ КодаВеб-безопасностьНеправильная КонфигурацияБезопасность API
GitHubshoucheng3/nahsra__antisamy_cve-2017-14735_1-5-6

nahsra__antisamy_CVE-2017-14735_1-5-6

Библиотека Java для быстрой и настраиваемой очистки HTML из ненадёжных источников. Использует сканирование на основе политик для удаления вредоносного JavaScript и CSS, предотвращая XSS-атаки в веб-приложениях.

Репозиторий
2011 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

AntiSamy

Библиотека для быстрой, настраиваемой очистки HTML-кода из ненадёжных источников. Поддерживает Java 8+.

Другими словами: это API, которое помогает убедиться, что клиенты не отправляют вредоносный код в HTML, который они предоставляют для своих профилей, комментариев и т. п. и который сохраняется на сервере. Термин «вредоносный код» применительно к веб-приложениям обычно означает «JavaScript». По большей части каскадные таблицы стилей считаются вредоносными только тогда, когда они вызывают JavaScript. Однако существует множество ситуаций, когда «обычный» HTML и CSS могут использоваться во вредоносных целях.

ВАЖНО! - Изменения API, нарушающие совместимость, в версии 1.7.0

На протяжении разработки серии 1.6.x мы выявили и пометили как устаревшие ряд функций и API. Все эти устаревшие элементы были удалены в выпуске 1.7.0. Все изменения отслеживались в тикете: https://github.com/nahsra/antisamy/issues/195. Каждое из изменений описано ниже:

CssHandler имел 2 конструктора, которые отбрасывали параметр LinkedList<URI> embeddedStyleSheets. Оба конструктора теперь создают пустой внутренний LinkedList<URI>, и для получения ссылки на него, если необходимо, можно использовать метод getImportedStylesheetsURIList(). Эта функция используется редко, и, по сути, прямое обращение к этим конструкторам также редко, поэтому данное изменение вряд ли затронет большинство пользователей AntiSamy. При использовании обычно в качестве значения этого параметра передаётся пустой список, и этот список больше никогда не используется.

  • Сигнатура CssHandler(Policy, LinkedList<URI>, List<String>, ResourceBundle) была удалена

    • Вместо неё добавлена: CssHandler(Policy, List<String>, ResourceBundle)
  • Сигнатура CssHandler(Policy, LinkedList<URI>, List<String>, String, ResourceBundle) была удалена

    • Вместо неё добавлена: CssHandler(Policy, List<String>, ResourceBundle, String). ПРИМЕЧАНИЕ: Порядок последних 2 параметров этого метода был изменён на противоположный.
  • Поддержка XHTML была удалена. Теперь AntiSamy поддерживает только HTML. Поскольку мы считаем, что это была редко используемая функция, мы не ожидаем, что это затронет многих пользователей AntiSamy.

  • Проверка XML-схемы теперь обязательна для файлов политик AntiSamy и не может быть отключена. Вы должны сделать свой файл политики соответствующим схеме, чтобы использовать его с AntiSamy.

  • Директива политики noopenerAndNoreferrerAnchors теперь включена по умолчанию. Если она отключена, AntiSamy выдаёт назойливое предупреждение, призывающее включить её.

Дисклеймеры о формате вывода

На протяжении жизненного цикла обновлений AntiSamy менялась зависимость парсера HTML, что приводило к некоторым различиям в выводе в зависимости от варианта использования. Учитывайте это, если вы использовали определённые версии и получаете другие результаты после обновления.

Это также может относиться к сериализатору вывода, который преобразует внутреннее HTML-представление в итоговый текстовый вывод инструмента.

Прекращение поддержки внешних таблиц стилей

Команда AntiSamy решила, что поддержка возможности разрешать встроенные удалённые CSS опасна, поэтому мы прекращаем поддержку этой функции, и она будет удалена в одном из будущих выпусков. Ожидается, что пользователей этой функции очень мало, если они вообще есть.

Мы добавили предупреждение в журнал (WARN), если эта функция вызывается. Если вы её используете, отключите/удалите эту функцию, переключившись на основной конструктор CssScanner, который не включает эту функцию.

Как использовать

1. Импорт зависимости

Сначала добавьте зависимость из Maven:

<dependency>
   <groupId>org.owasp.antisamy</groupId>
   <artifactId>antisamy</artifactId>
   <version>LATEST_VERSION</version>
</dependency>

2. Выбор базового файла политики

Вероятно, что вариант использования AntiSamy на вашем сайте хотя бы примерно сопоставим с одним из предопределённых файлов политик. Каждый из них представляет собой «типичный» сценарий разрешения пользователям предоставлять HTML (и, возможно, CSS) форматирование. Давайте рассмотрим различные файлы политик:

  1. antisamy-slashdot.xml

Slashdot — это технический новостной сайт, который позволяет пользователям анонимно отвечать на новостные сообщения с очень ограниченной HTML-разметкой. Slashdot — не только один из самых крутых сайтов, но и один из тех, что подвергался множеству различных успешных атак. Правила Slashdot довольно строгие: пользователи могут отправлять только следующие HTML-теги и никакого CSS: <b>, <u>, <i>, <a>, <blockquote>.

Соответственно, мы создали файл политики, который обеспечивает довольно похожую функциональность. Разрешены все теги форматирования текста, которые напрямую воздействуют на шрифт, цвет или выделение.

  1. antisamy-ebay.xml

eBay — самый популярный онлайн-аукцион во вселенной, насколько нам известно. Это публичный сайт, поэтому любой может размещать объявления с богатым HTML-содержимым. Неудивительно, что учитывая привлекательность eBay как цели, он подвергался нескольким сложным XSS-атакам. Объявления могут содержать гораздо более богатый контент, чем, скажем, на Slashdot, — поэтому поверхность атаки значительно больше.

  1. antisamy-myspace.xml

MySpace был, на момент создания этого проекта, самым популярным сайтом социальной сети. Пользователям разрешалось отправлять практически любой HTML и CSS, какой они хотели, — если он не содержал JavaScript. MySpace использовал чёрный список слов для проверки HTML пользователей, поэтому он и подвергся печально известному червю Samy. Червь Samy, который использовал фрагментационные атаки в сочетании со словом, которое должно было быть в чёрном списке (eval), — послужил вдохновением для этого проекта.

  1. antisamy-anythinggoes.xml

Мы не знаем возможного варианта использования этого файла политики. Если вы хотите разрешить все допустимые элементы HTML и CSS (но без JavaScript или явных фишинговых атак на основе CSS), вы можете использовать этот файл политики. Даже MySpace не был настолько безумен. Однако он служит хорошим справочником, поскольку содержит базовые правила для каждого элемента, поэтому вы можете использовать его как базу знаний при настройке других файлов политик.

Логирование

AntiSamy теперь включает библиотеку slf4j-simple для логирования, но пользователи AntiSamy могут импортировать и использовать альтернативную совместимую с slf4j библиотеку логирования, если предпочитают. При желании они также могут исключить slf4j-simple.

ПРЕДУПРЕЖДЕНИЕ: Использование AntiSamy slf4j-simple без файла конфигурации записывает сообщения в буферизованном режиме в стандартный вывод. В результате некоторые или все эти сообщения журнала могут быть потеряны, если будет выброшено Exception, например PolicyException. Это, вероятно, можно исправить, настроив slf4j-simple на запись в стандартный поток ошибок или используя альтернативный регистратор slf4j, который делает это.

3. Настройка файла политики

Возможно, вы захотите развернуть AntiSamy в конфигурации по умолчанию, но не менее вероятно, что сайт захочет иметь строгие, определяемые бизнес-правила для того, что пользователям разрешено. В обсуждении, определяющем настройку, также следует учитывать поверхность атаки — она растёт пропорционально файлу политики.

Примеры политик можно адаптировать и тестировать на основе требований для каждого тега. Поддерживаемые действия с тегами, которые можно указать:

  • filter: удалять теги, но сохранять содержимое.
  • validate: сохранять содержимое, если оно проходит правила.
  • remove: удалять тег и содержимое.
  • truncate: удалять атрибуты тега и все дочерние теги, кроме его текстового содержимого, если оно есть.
  • encode: похоже на filter, но кодирует тег для HTML, чтобы сохранить его как необработанный текст, а его дочерние элементы перемещаются на один уровень вверх в иерархии.

4. Вызов API AntiSamy

Использовать AntiSamy легко. Вот пример вызова AntiSamy с файлом политики:

Скачать инструмент