Достаточно ли check_plain () для повторного отображения текста, введенного пользователями в браузере, или мне все равно следует фильтровать с помощью filter_xss () ?
Достаточно ли check_plain () для повторного отображения текста, введенного пользователями в браузере, или мне все равно следует фильтровать с помощью filter_xss () ?
Ответы:
Я полагаю, что вопрос об использовании check_plain(filter_xss($string))или filter_xss(check_plain($string)).
check_plain()и filter_xss()имеют две разные и, напротив, цели:
check_plain() кодирует специальные символы в виде простой текстовой строки, которая затем отображается в виде HTML.filter_xss()фильтрует строку HTML для предотвращения уязвимостей межсайтового скриптинга (XSS). В частности, его целью является:
Если вы используете check_plain(), строка, переданная функции, должна использоваться как простой текст; в таком случае filter_xss()не нужно. Если вы используете filter_xss(), то строка, передаваемая функции, должна быть HTML и check_plain()не обязательна.
Если речь идет об использовании check_plain()и filter_xss()в разных частях одной и той же строки, то, как указал григгл в своем комментарии, вы можете использовать (например) check_plain()содержимое атрибутов тега и filter_xss()весь тег HTML.