Редактировать: Спасибо @mario за указание, что все зависит от контекста .Там действительно нет супер способ , чтобы предотвратить все это на все случаи жизни.Вы должны отрегулировать соответственно.
Редактировать: Я исправлен и очень благодарен за поддержку @bobince и @ Rook по этому вопросу.Теперь мне совершенно ясно, что strip_tags
никак не предотвратит атаки XSS .
Я отсканировал весь свой код, прежде чем ответить, чтобы узнать, был ли я каким-либо образомразоблачен и все хорошо из-за htmlentities($a, ENT_QUOTES)
, который я использовал в основном для работы с W3C.
Тем не менее, я обновил функцию ниже, чтобы немного подражать той, которую я использую.Я до сих пор считаю, что strip_tags
приятно иметь до htmlentities, так что когда пользователь пытается ввести теги, он не будет загрязнять конечный результат.Скажите, что пользователь ввел: <b>ok!</b>
гораздо лучше показать его как ok!
, чем распечатывать преобразованные полнотекстовые htmlentities.
Спасибо вам обоим за то, что нашли время ответить и объяснить.
Если это исходит от пользователя интернета:
// the text should not carry tags in the first place
function clean_up($text) {
return htmlentities(strip_tags($text), ENT_QUOTES, 'UTF-8');
}
Если оно исходит из бэк-офиса ... не надо.
Есть совершенно веские причины, по которым кому-то в компании может понадобиться JavaScript для той или иной страницы.Намного лучше иметь возможность регистрироваться и обвинять, чем закрывать своих пользователей.