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