Запутался насчет фильтра StripTags - PullRequest
1 голос
/ 11 октября 2010

Я немного озадачен фильтром StripTags, который используется в Zend. Я думаю, что это предназначено для удаления тегов, которые могут привести к XSS. Так не должно ли это означать, что его следует использовать при выводе данных в представлениях? Я видел, как это используется с вводами формы

->addFilter('StripTags')

Должно ли оно использоваться как для ввода в формах, так и для вывода в представлениях, или оно работает путем фильтрации данных до того, как они поступят в базу данных (в этом случае это не будет хорошей идеей).

Ответы [ 4 ]

2 голосов
/ 11 октября 2010

Не столько прямой ответ на ваш вопрос, сколько альтернативный подход.

В сообщении в блоге "Санация HTML: детали дьявола (и уязвимости)" ,Падрайк Брейди обсуждает санацию HTML и различные компоненты для этого.Он выражает серьезную обеспокоенность по поводу использования фильтра StripTags для этой цели.

HTMLPurifier представляется лучшим выбором.

0 голосов
/ 01 декабря 2013

в соответствии с неофициальной документацией ZF2:

https://zf2.readthedocs.org/en/latest/modules/zend.filter.set.html#striptags

Zend \ Filter \ StripTags потенциально небезопасен

Имейте в виду, что Zend \ Filter \ StripTags следует использовать толькоудалить все доступные теги.

Использование Zend \ Filter \ StripTags для защиты вашего сайта путем удаления некоторых нежелательных тегов приведет к небезопасному и опасному коду.

Zend \ Filter \ StripTags не должен бытьиспользуется для предотвращения атак XSS.Этот фильтр не заменяет использование Tidy или HtmlPurifier.

Так что используйте его на свой страх и риск ...

0 голосов
/ 14 октября 2010

Фильтр метки полосы не будет работать, если вы не вызовете его явно через

$stripedValue = $form->getValue('fieldName');
0 голосов
/ 11 октября 2010

StripTags используется с выводом в представлениях. Обратите внимание, что отображение текста в редактируемом поле (например, textarea) на самом деле является «выводом в виде» Данные не должны быть предварительно обработаны / преобразованы перед входом в базу данных.

...