• CWE-87: Improper Neutralization of Alternate XSS Syntax

Das Produkt neutralisiert die benutzerkontrollierte Eingabe für alternative Script-Syntax nicht oder neutralisiert diese fehlerhaft.

CWE-87: Improper Neutralization of Alternate XSS Syntax

CWE ID: 87
Name: Improper Neutralization of Alternate XSS Syntax

Beschreibung

Das Produkt neutralisiert die benutzerkontrollierte Eingabe für alternative Script-Syntax nicht oder neutralisiert diese fehlerhaft.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Alle Eingaben vor der Verarbeitung in absolute oder kanonische Repräsentationen auflösen.

Maßnahme (Implementation)

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. Alle Eingaben sollten 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. Außerdem kann ein Feld, das derzeit nicht reflektiert wird, von einem zukünftigen Entwickler verwendet werden. Daher wird die Validierung ALLER Teile der HTTP-Anfrage empfohlen.

Maßnahme (Implementation)

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.

Maßnahme (Implementation)

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.