Mysql
 sql >> Database >  >> RDS >> Mysql

Markdown (con strip_tags) è sufficiente per fermare gli attacchi XSS?

Penso che rimuovere qualsiasi tag HTML dall'input ti darà qualcosa di abbastanza sicuro, a meno che qualcuno non trovi un modo per iniettare alcuni dati davvero incasinati in Markdown, generando un output ancora più incasinato ^^

Tuttavia, ecco due cose che mi vengono in mente:

Il primo : strip_tags non è una funzione miracolosa :ha dei difetti...
Ad esempio, rimuoverà tutto dopo il '<', in una situazione come questa :

$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));

L'output che ottengo è:

string '10 appels is ' (length=13)

Il che non è così bello per i tuoi utenti :-(


Secondo : Un giorno o l'altro, potresti voler consentire alcuni tag/attributi HTML; oppure, anche oggi, potresti voler essere sicuro che Markdown non generi alcuni tag/attributi HTML.

Potrebbe interessarti qualcosa come HTMLPurifier :ti permette di specificare quali tag e attributi devono essere mantenuti e filtra una stringa, in modo che rimangano solo quelli.

Genera anche codice HTML valido -- che è sempre bello ;-)