Богатый текстовый редактирование, предотвратить встроенный код JavaScript

StackOverflow https://stackoverflow.com/questions/3566016

Вопрос

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

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

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

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

Решение

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

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

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

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