Innanzitutto, ciò che htmlspecialchars()
e funzioni simili non rimuovono il codice pericoloso, è la codifica dati come HTML .
Quindi, ciò che htmlspecialchars
fa non fa è il seguente:
- Ricevi dati
- Trova codice HTML pericoloso e sostituiscilo con codice innocuo
- Restituisce i dati sterilizzati
Ma fa quanto segue:
- Ricevi dati
- Converti questi dati in HTML, in modo che quando viene visualizzato questo codice sembrerà lo stesso come quando i dati originali verrebbero visualizzati senza essere analizzati da un parser HTML.
- Restituisce il codice HTML
➥ Puoi vedere la differenza qui
Inoltre, poiché stai chiedendo questo, potresti essere frainteso dove dovrebbe essere applicata la prevenzione XSS. La codifica dei dati come HTML non dovrebbe essere eseguita quando viene ricevuta, ma quando viene emessa dal server web.
Quindi dovresti non farlo in questo modo:
- Il server riceve i dati da un client
- Il server sfugge i dati in formato HTML
- Il server elabora i dati
- Il server invia i dati al client
Ma in questo modo:
- Il server riceve i dati da un client
- Il server elabora i dati
- Il server sfugge i dati in formato HTML
- Il server invia i dati al client