Es gibt bekannte Art Attribut XSS-Angriffe wie:XSS-Angriffe und Stilattribute
<DIV STYLE="width: expression(alert('XSS'));">
Oder
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
Alle Beispiele I've seen entweder Ausdruck oder URL-Funktionalität nutzen - im Grunde etwas Funktion wie das erfordern " (" und ")".
I die folgenden Verfahren zum Filtern von Style-Tags denken, ich würde überprüft sie folgende mit (ungefähr) Grammatik:
identifier: [a-zA-Z_][a-zA-Z0-9\-]*
number: [0-9]+
string: '[a-zA-Z_0-9 ]*'
value : identifier | number | string | number + "(em|px)" | number +"%"
entry: identifier ":" value (\s value)*
style: (entry ;)*
Also im Grunde erlaube ich ASCII-Eigenschaften mit numerischen Werten oder sehr begrenzten String-Werten (im Grunde für Schriftartnamen), die nichts erlaubt, das wie Anruf aussieht.
Die Frage ist das gut genug? Gibt es irgendwelche Angriffe, die etwas in der Art tun können:
<DIV STYLE="this-is-js-property: alert 'XSS';">
Und erfolgreich sein?
Kann jemand an die XSS-Schwachstelle eines solchen Tests denken?
deutlich machen,
Ich brauche Stil so viele Werkzeuge wie TinyMCE sie Attribute und Filterung harmlos Stilattribute aus deutlich die Funktionalität verletzen würde.
Also bevorzuge Pass häufige Fälle entfernen alle Dinge, die @import, URL, Ausdruck usw. verwenden können. Und stellen Sie auch sicher, dass grundlegende CSS-Syntax in Ordnung ist.
Antwort
Nein ist es nicht sicher durch die Anfälligkeit für Clickjacking.
gute Arbeit geleistet, wusste nicht, viele dieser –