Как уже упоминалось, вы можете использовать комбинацию strip_tags
и htmlspecialchars
, чтобы защитить себя от XSS.
Одна плохая вещь в strip_tags
заключается в том, что он может удалять безвредный контент, который пользователь не ожидает. Я вижу, что технические специалисты пишут такие вещи, как: <edit> foo </edit>
, где они полностью ожидают, что эти теги будут видны как есть. Кроме того, я видел, что «нормальные» люди даже делают такие вещи, как <g>
для «улыбки». Опять же, они подумают, что это ошибка, если она не появляется.
Так что лично я избегаю strip_tags
в предпочтении моего собственного анализатора, который позволяет мне явно включать определенные безопасные теги HTML, атрибуты и CSS, явно отключать небезопасные теги и атрибуты и преобразовывать любые другие специальные символы в безопасные версии. Таким образом, текст всегда выглядит так, как можно было бы ожидать.
Если бы в моем распоряжении не было этого парсера, я бы просто использовал htmlspecialchars
для безопасного кодирования текста.