Редактирование текста, предотвращение встраивания кода JavaScript

Я сделал сайт, используя известный фреймворк Symfony. Я хотел добавить богатую функцию редактирования к нему. И я нашел редактор TinyMCE. Но возникла проблема: как насчет того, чтобы пользователь встраивал некоторый код JavaScript в контент? например, оповещение ("Привет, мир").

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

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

2 ответа

Решение

Не допускайте использования встроенного JavaScript в вашем пользовательском вводе. Это легко очистить либо на клиенте, либо на сервере. Создайте "белый список" поддерживаемых вами HTML-тегов и удалите все атрибуты прослушивателя событий из того, что вы разрешаете.

Хорошая идея - использовать существующую библиотеку для очистки вашего пользовательского ввода, проект очистителя html: http://htmlpurifier.org/ кажется, поддерживается и хорошо сделан.

Другие вопросы по тегам