Чи достатньо 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.