Как разрешить определенные HTML-теги? - PullRequest
6 голосов
/ 12 февраля 2012

Я получил текстовую область, где пользователь может написать статью. Статья может содержать текст (жирный и курсив), ссылки и видео на YouTube. Как разрешить эти определенные теги html и при этом публиковать защищенный код, предотвращающий xss?

Ответы [ 2 ]

11 голосов
/ 12 февраля 2012

Я бы использовал HTMLPurifier , чтобы гарантировать, что вы сохраняете только HTML

  • Это действительно
  • и содержит только теги иАтрибуты, которые вы выбрали для разрешения


Я должен добавить, что PHP предоставляет функцию strip_tags(), но это не так хорошо (цитирование) :

Поскольку strip_tags() фактически не проверяет HTML, частичные или поврежденные теги могут привести к удалению большего количества текста / данных, чем ожидалось.

Эта функция не изменяет какие-либо атрибуты тегов, которые вы разрешаете использовать allowable_tags, включая атрибуты style и onmouseover, которыми злой пользователь может злоупотреблять при публикации текста, который будет показан другим пользователям.

1 голос
/ 12 февраля 2012

Если вы ищете настоящую защиту XSS, я предлагаю использовать HTMLPurifier .Делать это самостоятельно довольно сложно, если не невозможно.И в нем обязательно должны быть ошибки (/ дыры).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...