Редактор WMD, санирующий

Я пытаюсь найти способы санировать вход редактора WMD.

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

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

Например, read this!

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

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

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

5
задан Peter Mortensen 16 May 2011 в 22:12
поделиться

2 ответа

В итоге я использовал HTML Purifier для этого .

3
ответ дан 15 December 2019 в 00:53
поделиться

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

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

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

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

1
ответ дан 15 December 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: