Javascript XSS-Prävention

Es ist ein Node.js Projekt bereinigt Daten und es ist ein OWASP-Bibliothek für JavaScript, mit der Bereinigung zu verhindern, XSS.

Ich habe benchmarking dieser Bibliotheken, und Sie sind Recht intensiv und vielleicht ein overkill, meine Anwendung benötigt keine dynamische HTML (die von den Benutzern eingereicht, bbtags oder was auch immer, gar nicht erforderlich) also warum nicht tun Sie es so:

  1. Deaktivieren "<" und " > " - Zeichen, nicht diese zu ersetzen oder so, einfach deaktivieren Sie Sie, wenn der Nutzer diese, geben Sie Ihnen eine Warnung, dass diese deaktiviert sind (client - und server-seitige Validierung)
  2. & => &amp;
  3. " => &quot;
  4. ' => &#x27;
  5. / => /
  6. Kodieren eingereichten URLs (GET-Parameter etc.)
  7. DOM-basierten XSS bedeckt ist, da meine Anwendung verwendet HTML5 PushState und das backend ist komplett getrennt vom frontend.

Wäre das genug, um mich zu schützen, wie gesagt, meine Anwendung erfordert keine HTML-die von den Benutzern eingereicht, so brauche ich nicht die < und > tags überhaupt.

Dank für all das feedback, das ist, was ich jetzt verwenden:

var pattern = /<(.*)>/;

function hasHtmlTags(string) {
    return pattern.test(string);
};

if (hasHtmlTags(userData)) {
    //Do something?
} else {
    //Create entity.
}

So dass die Nutzer können immer noch Ihre emoticons :< und Z, und die Funktion wird nur ausgelöst, wenn eine Kombination von < und > gefunden. So ist keine aufwendige reguläre Ausdrücke und so, einfach deaktivieren < und > in Kombination, und wir sollten in Ordnung sein.

Ich sehe, die Benutzer aber benutze es nicht so offen, und wenn Sie tun, Sie sind nicht essentiell. Also ich dachte, warum nicht Ersatz der overkill und deaktivieren Sie Sie.
Es sollte ausreichend sein, so lange wie Sie angeben, Ihre Zeichenkodierung.

InformationsquelleAutor onlineracoon | 2012-10-09

Schreibe einen Kommentar