Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Reicht Markdown (mit strip_tags) aus, um XSS-Angriffe zu stoppen?

Ich denke, das Entfernen von HTML-Tags aus der Eingabe bringt Ihnen etwas ziemlich Sicheres - außer wenn jemand einen Weg findet, einige wirklich durcheinandergebrachte Daten in Markdown einzufügen, wodurch es noch mehr durcheinandergebrachte Ausgaben erzeugt ^^

Trotzdem fallen mir zwei Dinge ein :

Erste: strip_tags ist keine Wunderfunktion:Sie hat einige Fehler...
Zum Beispiel wird in einer Situation wie dieser alles nach dem '<' entfernt:

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

Die Ausgabe, die ich bekomme, ist:

string '10 appels is ' (length=13)

Was für Ihre Benutzer nicht so schön ist :-(


Zweite: Eines Tages möchten Sie vielleicht einige HTML-Tags/Attribute zulassen; oder Sie möchten vielleicht sogar heute sicher sein, dass Markdown keine HTML-Tags/Attribute generiert.

Vielleicht interessiert Sie etwas wie HTMLPurifier :Sie können festlegen, welche Tags und Attribute beibehalten werden sollen, und eine Zeichenfolge filtern, sodass nur diese verbleiben.

Es generiert auch gültigen HTML-Code – was immer nett ist ;-)