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

Er Markdown (med strip_tags) tilstrækkeligt til at stoppe XSS-angreb?

Jeg tror, ​​​​at fjerne et HTML-tag fra inputtet vil give dig noget temmelig sikkert -- undtagen hvis nogen finder en måde at injicere nogle virkelig rodede data i Markdown, og få det til at generere noget endnu mere rodet output ^^

Alligevel er der to ting, der falder mig ind:

Den første : strip_tags er ikke en mirakelfunktion :den har nogle fejl...
For eksempel vil den fjerne alt efter '<' i en situation som denne :

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

Det output, jeg får, er:

string '10 appels is ' (length=13)

Hvilket ikke er så rart for dine brugere :-(


Den anden : En eller anden dag vil du måske tillade nogle HTML-tags/attributter; eller selv i dag vil du måske være sikker på, at Markdown ikke genererer nogle HTML-tags/attributter.

Du kan være interesseret i noget som HTMLPurifier :det giver dig mulighed for at angive, hvilke tags og attributter der skal beholdes, og filtrerer en streng, så kun dem forbliver.

Det genererer også gyldig HTML-kode -- hvilket altid er rart ;-)



  1. Brug af ODBC-data i RapidMiner

  2. MariaDB FLOOR() vs TRUNCATE()

  3. MySQL Statement Cancellation Timer kunne ikke stoppe

  4. Skinner med i hukommelsesdatabase