2017-08-24 8 views
0

Ich arbeite an der Behebung von Problemen mit Cross Site Scripten in Java.Fehlerbehebung für Cross Site Scripting in Java mit OWASP

  1. Enumeration<String> EnumHeader = request.getHeaderNames();

  2. Map<String, String[]> pMap = request.getParameterMap();

  3. Object value = request.getHeader(key);

  4. String[] refs = (req.getParameterValues(REFS_NAME));

+0

Ich würde beginnen, indem Regel # 0 und Regel # 1 unter: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet – fgb

Antwort

1

Während die Datenvalidierung bei der Vermeidung von XSS sehr hilfreich sein kann, deckt sie nicht unbedingt alle Grundlagen für persistente XSS ab. Der einzige 100% effektive Schutz ist die korrekte kontextabhängige Ausgabecodierung, wie sie vom OWASP Java Encoder Project oder OWASP ESAPIs Encoder angeboten wird. Ein Grund dafür ist persistentes XSS, die verdorbenen Daten können von einer DB stammen, die von einer anderen Anwendung eingegeben oder geändert werden kann, die Einfüge-/Aktualisierungszugriff auf dieselben DB-Tabellen hat, die jedoch keine korrekte Datenvalidierung durchführt. (Das heißt, die verdorbenen Daten könnten auf andere Weise in Ihr System gelangen als über Ihre Anwendung.) Die einzige narrensichere Lösung besteht also darin, eine korrekte kontextabhängige Ausgabecodierung vorzunehmen. Der OWASP XSS Prevention Cheat Sheet, auf den du bereits hingewiesen wurdest, ist ein großartiger Ausgangspunkt, der all das erklärt.

0

Sie könnten eine OS-Bibliothek verwenden, um zu sanieren diese Strings/Objekte.

Beispiel Bibliothek: https://finn-no.github.io/xss-html-filter/

Dann für die Sammlungen von Kopf- und Parameter, die Sie durch sie durchlaufen können Java 8 Streams verwenden und ordnet sie zu neuen gefilterten Sammlungen (dass die Sanitizer Bibliothek verwenden).

+0

Der Ansatz dieser Bibliothek, mit Regex, um Zeichenfolgen in der ersetzen html, kann verwundbare fehlerhafte HTML erzeugen. Der owasp html Desinfizierer ist besser. Zum Beispiel führt dies eine Warnung aus: '123123' – fgb

+0

Tatsächlich hat der HTML-Filter, auf den hier verwiesen wird, den spezifischen Anwendungsfall, dass Ihre Anwendung HTML-Inhalt von Benutzern akzeptieren muss - standardmäßig könnte es Sie anfälliger machen, besonders wenn Sie ' Erledigen Sie nicht die Ausgabe. Wie @fgb auch hervorhebt, ist die korrekte Art, HTML zu bereinigen, mit einem HTML-Parser, NOT Regex. – avgvstvs

Verwandte Themen