CWE ID: 81
Name: Improper Neutralization of Script in an Error Message Web Page
Das Produkt empfängt Eingaben von einer vorgelagerten Komponente, neutralisiert diese jedoch nicht oder neutralisiert sie fehlerhaft. Dies betrifft spezielle Zeichen, die, wenn sie an eine Fehlerseite gesendet werden, als Web-Scripting-Elemente interpretiert werden könnten.
Effektivität: Unknown
Beschreibung: Schreiben Sie keine user-controlled input in Fehlerseiten.
Effektivität: Unknown
Beschreibung: Überprüfen Sie jeden Input-Parameter sorgfältig anhand einer rigorosen, positiven Spezifikation (allowlist), die die spezifischen Zeichen und das erlaubte Format definiert. Sämtliche 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 gekennzeichnet werden. In Browsern, die die HttpOnly-Funktion unterstützen (wie beispielsweise neuere Versionen von Internet Explorer und Firefox), verhindert dieses Attribut, dass clientseitige, bösartige Skripte, die document.cookie
verwenden, auf den Session-Cookie des Benutzers zugreifen können. 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.