Вопрос

Я пытаюсь найти способы дезинфицировать ввод Оздоровительный редактор.

В частности, я пытаюсь сделать теги HTML доступными только в <code>Теги, которые генерируют WMD. Это возможно

Моя проблема заключается в том, что следующий код отображается как HTML, который важно потенциально XSS атаки.

Например, <a onmouseover="alert(1)" href="#">read this!</a>

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

Я замечаю, что переполнение стека, похоже, не имеет этой проблемы. Тот же код просто отображается как текст.

Я замечаю, что команда переполнения стека поделилась своим кодом в http://refactormycode.com/codes/333-sanitize-html.. Отказ Должен ли я действительно использовать C #, чтобы санировать WMD для этого?

Это было полезно?

Решение

Я закончил использовать HTML очиститель за это.

Другие советы

Если вы хотите заблокировать плохие скрипты из WMD на стороне клиента, посмотрите на мой ответ здесь:Совместите предварительный просмотр HTML редактора WMD с проверкой HTML-сервера HTML (например, встроенный код JavaScript).

Он показывает, как реализовать белый собор клиента в редакторе WMD, чтобы ограничить Pane WMD Pane HTML к известным безопасным элементам HTML и известных атрибутов HTML. Это делает проверку после WMD ведется HTML, поэтому, даже если есть ошибка в генерации HTML-редактора WMD, который позволяет плохо пройти через белый скрипт, блокировщик WhiteList поймает его. Этот код основан на реализации такого же валидации StackoverFlow.com.

Тем не менее, вам также нужна проверка на стороне серверов (если вы используете PHP, HTML очиститель Это хороший выбор), потому что даже если вы исправляете клиент, то не мешает злоумышленнику имитировать браузер и сохранять вредоносную уценку, поставив его на свой сервер. Таким образом, выполнение валидации Previewer WMD на стороне клиента не требуется, за исключением защиты от непонятного случая, когда злоумышленник удается получать скомпрометированную установку на сервер и убеждает модератор сайта для редактирования страницы. В этом случае проверка клиента WMD Vaveriewer может помешать злоумышленнику взять на себя весь сайт.

Кроме того, выполнение проверки на стороне клиента может быть полезным, потому что тогда вы знаете, что те же теги и HTML, разрешенные клиентом, также будут разрешены на сервере. Обязательно синхронизируйте синхронизируйте WhiteList на стороне сервера с помощью клиента Whitelist. Белый список стойки здесь Если вы хотите пример.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top