¿Es check_plain () suficiente para volver a mostrar el texto ingresado por los usuarios en el navegador, o aún debería filtrar con filter_xss () ?
¿Es check_plain () suficiente para volver a mostrar el texto ingresado por los usuarios en el navegador, o aún debería filtrar con filter_xss () ?
Me imagino que la pregunta es sobre el uso check_plain(filter_xss($string)), o filter_xss(check_plain($string)).
check_plain()y filter_xss()tienen dos propósitos diferentes, y en contraste:
check_plain() codifica caracteres especiales en una cadena de texto sin formato que luego se muestra como HTML.filter_xss()filtra una cadena HTML para evitar vulnerabilidades de cross-site-scripting (XSS). En particular su propósito es:
Si lo usa check_plain(), se supone que la cadena pasada a la función se usará como texto sin formato; en tal caso, filter_xss()no es necesario. Si usa filter_xss(), entonces la cadena pasada a la función se supone que es HTML, y check_plain()no es necesaria.
Si la pregunta es sobre el uso check_plain()y filter_xss()en diferentes partes de la misma cadena, entonces, como señaló greggles en su comentario, puede usar (por ejemplo) check_plain()en el contenido de los atributos de la etiqueta y filter_xss()en toda la etiqueta HTML.