Редактор ОМУ санирование - PullRequest
5 голосов
/ 06 мая 2010

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

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

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

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

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

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

Я заметил, что команда Stack Overflow поделилась своим кодом в http://refactormycode.com/codes/333-sanitize-html. Действительно ли мне нужно использовать C # для дезинфекции ОМУ для этого?

Ответы [ 2 ]

3 голосов
/ 08 мая 2010

Я использовал Очиститель HTML для этого.

1 голос
/ 15 мая 2010

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

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

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

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

...