CWE ID: 84
Name: Improper Neutralization of Encoded URI Schemes in a Web Page
Die Webanwendung neutralisiert benutzerkontrollierte Eingaben, die als ausführbare Skripte getarnt und mit URI-Encodings versehen sind, nicht ordnungsgemäß.
Effektivität: Unknown
Beschreibung: Alle URIs sollten vor der Verarbeitung in absolute oder kanonische Repräsentationen aufgelöst werden.
Effektivität: Unknown
Beschreibung: Überprüfen Sie jeden Eingabeparameter sorgfältig anhand einer strengen, positiven Spezifikation (Allowlist), die die spezifischen Zeichen und das zulässige 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 Tag-Attribute, versteckte Felder, Cookies, Header, die 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.