У меня есть текстовое поле, где пользователь может написать статью. Статья может содержать текст (жирный и курсив), ссылки и видеоролики YouTube. Как разрешить эти определенные теги html и по-прежнему отправлять безопасный код, предотвращающий xss?
Я бы использовал HTMLPurifier , чтобы вы только сохраняли HTML
Я должен добавить, что PHP предоставляет strip_tags()
, но это не так хорошо (цитирование) :
Поскольку
strip_tags()
фактически не проверяет HTML, частичные или сломанные теги могут привести к удалению большего количества текста / данных, чем ожидалось.Эта функция не изменяет никаких атрибутов в тегах, которые вы разрешаете использовать allowable_tags, включая атрибуты стиля и onmouseover, которые может оскорбительный пользователь может злоупотреблять при публикации текста, который будет показан другим пользователям.
Если вы ищете реальную защиту XSS, я предлагаю использовать HTMLPurifier . Сделать это самостоятельно довольно сложно, если не невозможно. И должен иметь ошибки (/ дыры) в нем.