Я давно не знаю, как лучше всего обеспечить безопасный ввод и разрешить использование некоторых HTML-тегов в некоторых конкретных случаях.
Типичная ситуация - администратор, который хочет написать статью на xss (например,), которая будет храниться в базе данных и будет показана пользователям.Этот администратор мог бы написать теги типа <b>
для форматирования текста, но также как <javascript>
для объяснения атаки.Если я использую Zend_Filter_StripTags
, я могу позволить администратору помещать безвредный HTML-тег, такой как <b>
, в текст, но по соображениям безопасности я не могу позволить ему добавлять теги, такие как <javascript>
.
С другой стороны, если я использую Zend_Filter_HtmlEntities
, я разрешаю администратору безопасно писать все теги, но при показе статьи текст не форматируется.Наконец, если я использую Zend_Filter_HtmlEntities
и метод декодирования до того, как система покажет статью, у меня та же проблема, что и в первом случае.
Кто-нибудь знает лучший метод для решения этой проблемы?