È check_plain () sufficiente per ri-visualizzazione del testo inserito dagli utenti nel browser, o devo ancora filtro con filter_xss () ?
È check_plain () sufficiente per ri-visualizzazione del testo inserito dagli utenti nel browser, o devo ancora filtro con filter_xss () ?
Risposte:
Immagino che la domanda riguardi l'uso di check_plain(filter_xss($string))
, o filter_xss(check_plain($string))
.
check_plain()
e filter_xss()
hanno due scopi diversi e, al contrario,:
check_plain()
codifica i caratteri speciali in una stringa di testo semplice che viene quindi visualizzata come HTML.filter_xss()
filtra una stringa HTML per prevenire vulnerabilità cross-site-scripting (XSS). In particolare il suo scopo è:
Se si utilizza check_plain()
, la stringa passata alla funzione dovrebbe essere utilizzata come testo normale; in tal caso, filter_xss()
non è necessario. Se si utilizza filter_xss()
, la stringa passata alla funzione dovrebbe essere HTML e check_plain()
non è necessaria.
Se la domanda riguarda l'uso check_plain()
e filter_xss()
su parti diverse della stessa stringa, quindi, come sottolineato da Greggle nel suo commento, è possibile utilizzare (ad esempio) check_plain()
il contenuto degli attributi dei tag e filter_xss()
l'intero tag HTML.