CWE ID: 80
Name: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)
Das Produkt empfängt Eingaben von einer vorgelagerten Komponente, neutralisiert jedoch keine oder neutralisiert diese fehlerhaft, wie z.B. “<”, “>” und “&”, die als Web-Scripting-Elemente interpretiert werden könnten, wenn sie an eine nachgelagerte Komponente gesendet werden, die Webseiten verarbeitet.
Dies könnte dazu führen, dass diese Zeichen als Steuerzeichen behandelt werden, die clientseitig im Kontext der Benutzer-Session ausgeführt werden. Obwohl dies als ein Injection-Problem klassifiziert werden kann, ist das relevantere Problem die fehlerhafte Konvertierung dieser speziellen Zeichen in entsprechende, kontextgerechte Entities, bevor sie dem Benutzer angezeigt werden.
Effektivität: Unknown
Beschreibung: Überprüfen Sie jeden Eingabeparameter sorgfältig anhand einer strengen, positiven Spezifikation (allowlist), die die spezifischen Zeichen und Formate definiert, die erlaubt sind. Alle Eingaben müssen neutralisiert werden, nicht nur Parameter, die der Benutzer angeben soll, sondern alle Daten in der Anfrage, einschließlich versteckter Felder, Cookies, Headers, der URL selbst und so weiter. Ein häufiger Fehler, der zu anhaltenden XSS-Vulnerabilities führt, ist die Validierung nur der Felder, die von der Website wieder angezeigt werden sollen. Wir stoßen oft auf Daten aus der Anfrage, die vom Application Server oder der Anwendung reflektiert werden, die das Entwicklungsteam nicht vorhergesehen hat. Auch ein Feld, das derzeit nicht reflektiert wird, kann von einem zukünftigen Entwickler verwendet werden. Daher wird die Validierung ALLER Teile der HTTP-Anfrage empfohlen.
Effektivität: Unknown
Beschreibung: Mit Struts sollten Sie alle Daten aus Form Beans schreiben, bei denen das Attribut filter
des Beans auf true
gesetzt ist.
Effektivität: Defense in Depth
Beschreibung: Um XSS-Angriffe gegen den Session-Cookie des Benutzers zu minimieren, sollte der Session-Cookie als HttpOnly
gesetzt werden. In Browsern, die die HttpOnly
-Funktion unterstützen (wie neuere Versionen von Internet Explorer und Firefox), kann dieses Attribut verhindern, dass clientseitige, bösartige Skripte, die document.cookie
verwenden, auf den Session-Cookie des Benutzers zugreifen. Dies ist jedoch keine vollständige Lösung, da HttpOnly
nicht von allen Browsern unterstützt wird. Noch wichtiger ist, dass XMLHTTPRequest
und andere leistungsstarke Browser-Technologien Lesezugriff auf HTTP-Header ermöglichen, einschließlich des Set-Cookie
-Headers, in dem das HttpOnly
-Flag gesetzt wird.