Intereting Posts
Массив объектов внутри класса в PHP бесконечная прокрутка (wordpress) Magento: Как проверить, зарегистрирован ли администратор в контроллере модуля? Email Validation php Загрузить данные из базы данных + ajax + php Условие PHP, если текущая страница, затем ссылка выделена Является ли время () гарантированным знаком прыжка? Хранение хэшированного идентификатора в БД и извлечение его или создание хэшированного идентификатора в самом коде и его использование? Проблема с динамическим водяным знаком / на лету Zip Files Как ограничить скорость подачи формы для каждого пользователя Как использовать глобальный тип пространства имен, намекающий внутри класса с именами в PHP 5.3+? как войти на другой сайт через PHP Как отобразить список родительских категорий (со ссылками) в WordPress Проверка допустимой даты с использованием PHP-класса DateTime Отправить несколько номеров SMS-запросов за одну секунду PHP

PHP Markdown XSS Sanitizer

Я ищу простую библиотеку PHP, которая помогает фильтровать уязвимости XSS в выводе PHP Markdown. IE PHP Markdown будет анализировать такие вещи, как:

[XSS Vulnerability](javascript:alert('xss')) 

Я занимаюсь чтением, и лучшее, что я нашел здесь, было именно этим вопросом.

Хотя HTML-очиститель выглядит как лучшее ( почти единственное ) решение, мне было интересно, есть ли что-нибудь более общее? HTML-очиститель кажется немного надежным, особенно для моих нужд, а также болью для настройки, хотя похоже, что после этого он отлично справится.

Есть ли что-нибудь еще, что может быть немного менее надежным и настраиваемым, но все-таки сделать прочную работу? Или я должен просто копаться и начать пытаться настроить HTML-очиститель для моих нужд?

EDIT FOR CLARITY: Я не хочу вырезать углы или что-то подобное. HTML-очиститель просто предлагает много мелкозернистого контроля и для простого небольшого проекта, который просто контролирует просто не нужен, хотя использование ничего не является также вариантом. Вот откуда я пришел, прося чего-то более простого или менее надежного .

Также последнее замечание, я НЕ ищу предложения использовать htmlspecialchars() , strip_tags() или что-нибудь подобное. Я уже запретил вложенный HTML-код в PHP Markdown Extra, дезактивируя его аналогичным образом. Я ищу способы предотвратить уязвимости XSS в PHP Markdown OUTPUT .

Благодарю.

Solutions Collecting From Web of "PHP Markdown XSS Sanitizer"

Я никогда не слышал о каком-либо другом инструменте, кроме HTML Purifier , для этого – и у HTML Purifier действительно есть хорошая репутация.

Возможно, это « немного надежный » и « боль для настройки », да; но это также, вероятно, наиболее распространенное и проверенное решение, доступное в PHP ;; и это важные критерии, когда вам нужно выбрать такой важный компонент.

Даже если это означает инвестирование полдня, чтобы настроить его правильно, если бы я был в вашей ситуации, я бы выбрал HTML Purifier.

Нет такой вещи, как слишком надежная. «Санизировать» HTML сложно . Любые углы, которые вы разрезаете, чтобы обработать их более просто, скорее всего, приведут к прорыву эксплойтов. Даже сложный старый HTMLPurifier, обладающий лучшей в своем роде репутацией, имел несколько способов скрывать опасную разметку в прошлом!

Однако, если ваше решение для текстовой разметки способно выводить опасный HTML, то оно является недостаточным и должно быть заменено IMO. Если PHP Markdown позволяет использовать javascript: URL-адреса, то это довольно печальный, основной недостаток, и я не думаю, что верю, что все получится.

У меня было предложение, и я попросил SO узнать, будет ли он работать, но, к сожалению, он был закрыт и помечен как дубликат этого вопроса.

Мое предложение изменяет код уценки и позволяет использовать только ссылки и источники изображений с http:// , https:// или ftp:// который охватывает все необходимые общие протоколы. Если ссылка не начинается с одной из них, она должна оставаться неизменной на выходе.

HTMLPurifier – прекрасный ответ и, возможно, самое надежное решение.

Также можно использовать Markdown в относительно безопасном режиме, но вы должны использовать его правильно. Подробнее о том, как безопасно использовать Markdown, смотрите здесь . Подробную информацию о том, как его безопасно использовать, см. В ссылке, но короткая версия: важно использовать последнюю версию, установить safe_mode и установить enable_attributes=False .