Достаточно ли $ this-> escape () в представлении Zend для xss - PullRequest
5 голосов
/ 21 ноября 2010

Я делаю много $this->escape() в виде Zend.Этого достаточно, чтобы предотвратить XSS?

За пределами Zend Framework есть HTMLPurifier.Интересно, как Zend $this->escape() сравнивается с HTMLPurifier.

Ответы [ 2 ]

4 голосов
/ 21 ноября 2010

escape - это псевдоним htmlspecialchars. Он позволяет выводить простой текст, а HTMLPurifier - выводить безопасный HTML.

У вас не может быть XSS с простым текстом.

Вы должны использовать HTMLPurifier вместо strip_tags, если вы хотите выводить безопасный HTML, исходящий из пользовательского ввода (например, текстового редактора).

4 голосов
/ 21 ноября 2010

HTMLPurifier служит разным целям. HTMLPurifier не экранирует HTML ... ну, не совсем так. Он принимает заданную вами конфигурацию, которая определяет, что разрешено в HTML, а что нет, и очищает на основе этого. Результатом на самом деле все еще является HTML, а некоторые вещи удалены / очищены.

escape () с другой стороны превращает HTML-подобные символы в HTML-объекты, чтобы они отображали одинаковых символов в браузере вместо того, чтобы интерпретироваться как HTML (например, & -> &amp;, < -> &lt;, > -> &gt; и т. Д.)

Разные цели.

Это спасает вас от проблем с XSS? Да, но убедитесь, что вы правильно настроили кодировку символов.

...