2012-03-30 3 views
3

Я использую PHP и Zend Framework в своем приложении. Пользователь может ввести HTML-код, и администратор может видеть этот HTML-код. Я хочу избежать инъекции XSS. Весь HTML-код должен отображаться как любой javascript. Я попытался удалить теги script, но это небезопасно. Пользователь может добавить javascript в onclick или другие события.Лучший способ избежать выполнения javascript

Спасибо.

+0

В этом случае я бы использовал какой-то очиститель/очиститель ввода. Например, htmLawed: http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/index.php –

ответ

4

Если вы хотите, чтобы дезинфицировать ввод данных пользователя, как это от XSS, я бы посмотреть в использовании HTML purifier

Удаления только тегов сценария не достаточно, вы пропустите любой яваскрипт инлайны, что люди могут добавлять, среди прочего ,

HTML purifier однако удалит все это для вас. На своем сайте:

HTML Purifier - это стандартная библиотека HTML-фильтров, написанная в PHP. HTML очиститель не только удалит весь вредоносный код (лучше , известный как XSS) с тщательно проверенным, безопасным, но разрешительным белым списком , он также гарантирует, что ваши документы соответствуют стандартам , что только достижимо с полным знанием Спецификации W3C ,

+0

Хороший инструмент. Благодарю. Я исследую это. – pltvs

1

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

Начните с удаления тегов сценариев, затем запустите регулярные выражения на событиях on (onclick, onhover ...) и удалите их. Там больше offcourse ...

CodeIgniter (другие рамки, а также, вероятно,) имеет функцию xss_clean(), вы можете посмотреть на это, чтобы посмотреть, что они делают.

Смежные вопросы