Я ищу простой дезинфицирующее средство для HTML, написанное на JavaScript. Он не должен быть 100% -ной безопасностью XSS.Простой HTML-дезинфицирующее средство в Javascript
Я реализую Markdown и редактор Markdown Markdown (ветвь SO master from github) на моем веб-сайте. Проблема в том, что HTML, показанный в предварительном просмотре, не фильтруется, как здесь, на SO. Я ищу простой/быстрый HTML-дезинфицирующее средство, написанное на JavaScript, чтобы я мог фильтровать содержимое окна предварительного просмотра.
Нет необходимости в полном анализе с полной защитой XSS. Я не отправляю вывод обратно на сервер. Я отправляю Markdown на сервер, где я использую правильный, полный дезактиватор HTML, прежде чем я сохраню результат в базе данных.
Google абсолютно бесполезен для меня. Я просто получаю сотни (часто неправильных) статей о том, как отфильтровать javascript из созданного пользователем HTML на всех типах серверных языков.
UPDATE
Я объясню немного лучше, почему мне это нужно. На моем веб-сайте есть редактор, очень похожий на редактор здесь, на StackOverflow. Там есть текстовая область, чтобы ввести синтаксис MarkDown и окно предварительного просмотра под ним, которое покажет вам, как это будет выглядеть после отправки.
Когда пользователь отправляет что-то, он отправляется на сервер в формате MarkDown. Сервер преобразует его в HTML, а затем запускает для него HTML-дезинфицирующее средство для очистки HTML. MarkDown позволяет произвольный HTML, поэтому мне нужно его очистить. Например, пользователь вводит что-то вроде этого:
<script>alert('Boo!');</script>
Конвертер MarkDown не касается его, так как это HTML. Дезинфицирующее средство HTML будет лишать его, поэтому элемент сценария не будет удален.
Но это не то, что происходит в окне предварительного просмотра. Окно предварительного просмотра только преобразует MarkDown в HTML, но не дезинфицирует его. Таким образом, окно предварительного просмотра будет иметь элемент сценария. Это означает, что окно предварительного просмотра отличается от фактического рендеринга на сервере.
Я хочу исправить это, поэтому мне нужен быстрый и грязный JavaScript-дезинфицирующее средство для JavaScript. Произойдет что-то простое с базовым элементом/атрибутом blacklisting и whitelisting. Он не должен быть безопасным для XSS, поскольку защита XSS выполняется с помощью дезинфицирующего средства HTML на стороне сервера.
Это только, чтобы убедиться, что окно предварительного просмотра будет соответствовать фактическому рендерингу 99,99% времени, что достаточно для меня.
Вы можете помочь? Заранее спасибо!
FWIW, я ненавижу, когда просмотр не соответствует опубликованному. – Ms2ger
@ ms2ger: Вот почему мне нужен дезинфицирующее средство для HTML, так что предварительный просмотр будет соответствовать тому, что делает сервер в фоновом режиме. –
не проблема, чтобы позволить злоумышленникам проверять свои атаки в своем браузере, пока вы не видите никаких попыток? – siukurnin