Verhindern, dass script-injection mit innerHTML

Ich geschrieben habe, ein micro-templating-Dienstprogramm, mit innerHTML zu injizieren html-Fragmente in eine Webseite, basierend auf Benutzereingaben (entweder nur-text-strings oder html-Zeichenfolgen).

Meine größte Sorge ist das Risiko, dass bösartige script-injection. Das Skript kann eingefügt werden über ein script-tag, oder in einen inline-event (img onload div onmouseover zum Beispiel).

Gibt es eine Möglichkeit zur Bereinigung der html-string, um zu verhindern, dass solche Injektionen? Auch gibt es andere script-injection-Methoden, die ich beachten sollte?

Nein, entfernen script - tags ist nicht genug, wenn Sie möchten, um zu verhindern, dass böswillige Benutzer tun bösartige Dinge. Zum Beispiel <a href="http://yoursite.org" onclick="javascript:window.open('http://malicious.example.org')">An innocent looking link!</a> keine script tag und ist einfach nur fies.
Ich bin in keiner position zu vertreten, mich als ein Experte, aber mit document.createTextNode() Griffe allen diesen Fällen, und das zeigt die tags buchstäblich, so dass Sie nicht funktionieren.
richtig, aber das Ziel, in meinem Fall ist die sichere html als html gerendert.

InformationsquelleAutor Christophe | 2012-06-04

Schreibe einen Kommentar