2009-06-01 3 views
-1

herauszufiltern Ich versuche, alle Möglichkeiten von XSS aus Benutzernameneingabe herauszufiltern, während immer noch die Eingabe von fremden Namen erlaubt.Wie alle Nicht-Wort Zeichen aus Benutzereingabe in Java

Was ist der beste Weg, um alle Wortzeichen in mehreren Sprachen (auch Chinesisch und Japanisch und Russisch) aufzulisten?

Ist das überhaupt möglich? Es wäre einfach, eine Blacklist für XSS mit "<>&gt;&lt;" zu erstellen, aber dann könnten die Hacker das umgehen.

Antwort

3

Ich denke, Sie können das Problem aus der falschen Richtung nähern.

In der Regel verhindert das Verhindern von XSS-Vuls, dass alle von Benutzern erstellten Inhalte, die Sie auf Ihrer Website anzeigen, ordnungsgemäß ausgeblendet werden.

Auf diese Weise stellen Sie sicher, dass das, was angezeigt wird, genau das ist, was der Benutzer eingegeben hat, ohne das Risiko einzugehen, dass Ihre Whitelist versehentlich ein paar schlimme Fälle durchlässt.

+0

Von dem, was ich gelesen habe, habe ich den Eindruck, dass Sie eine sehr strenge Whitelist haben sollten, da die Hacker Wege finden werden um Ihre Blacklists (zB http://ha.ckers.org/xss.html) In diesem Fall möchte ich jedoch eine Whitelist, die die Eingabe nicht nur auf US-amerikanisches (oder westeuropäisches) ASCII beschränkt, sondern gleichzeitig "vollständig" XSS-ungeschützt ist. – tksu

+0

Sie haben natürlich Recht, paranoid zu sein, aber ich glaube, Sie könnten * zu * paranoid sein. Wenn Sie nicht jedes Zeichen von Benutzer eingegebene Daten kodieren (dh es in% XX Zeichencodes verwandeln), dann gibt es immer die Möglichkeit, dass Sie eine mögliche Schwachstelle verpasst haben, also wenn Sie 100% Versicherung das was wollen Ihre Ausgabe ist sicher, Sie könnten sie immer nur codieren. – Cyphus

Verwandte Themen