É check_plain () o suficiente para re-exibir o texto inserido pelos usuários no navegador, ou deveria eu ainda filtro com filter_xss () ?
É check_plain () o suficiente para re-exibir o texto inserido pelos usuários no navegador, ou deveria eu ainda filtro com filter_xss () ?
Eu imagino que a pergunta é sobre o uso check_plain(filter_xss($string))
, ou filter_xss(check_plain($string))
.
check_plain()
e filter_xss()
tem dois propósitos diferentes, e em contraste:
check_plain()
codifica caracteres especiais em uma sequência de texto sem formatação que é exibida como HTML.filter_xss()
filtra uma cadeia de caracteres HTML para evitar vulnerabilidades de script entre sites (XSS). Em particular, seu objetivo é:
Se você usar check_plain()
, a sequência passada para a função deve ser usada como texto sem formatação; nesse caso, filter_xss()
não é necessário. Se você usar filter_xss()
, a sequência passada para a função deve ser HTML e check_plain()
não é necessária.
Se a pergunta é sobre o uso check_plain()
e filter_xss()
em diferentes partes da mesma string, como os greggles apontaram em seu comentário, você pode usar (por exemplo) check_plain()
no conteúdo dos atributos da tag e filter_xss()
em toda a tag HTML.