Se conocen atributo style ataques XSS como:ataques XSS y los atributos de estilo
<DIV STYLE="width: expression(alert('XSS'));">
O
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
Todos los ejemplos I've seen utilizan ya sea la expresión o la funcionalidad url - básicamente la función de algo así como que requieren " ("y") ".
Estoy pensando siguiente método de filtrado de etiquetas de estilo, me gustaría comprobar que el uso de gramática siguiente (aproximadamente):
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 ;)*
Así que básicamente me permito propiedades ASCII con valores numéricos o valores de cadena muy limitados (básicamente para nombres de fuentes) que no permite usar nada que se parece a una llamada.
La pregunta es esta suficientemente buena? ¿Hay algún ataque que pueda hacer algo como eso?
<DIV STYLE="this-is-js-property: alert 'XSS';">
¿Y triunfar?
¿Alguien puede pensar en la vulnerabilidad XSS de tal prueba?
dejar claro
necesito atributos de estilo tantas herramientas como TinyMCE los utilizan y atributos filtrado inofensiva estilo fuera perjudicaría significativamente la funcionalidad.
Así que prefiero pasar casos comunes eliminando todo lo que pueda usar @import, url, expresión, etc. Y también asegúrese de que la sintaxis básica de css esté bien.
respuesta
No, no es seguro debido a clickjacking vulnerabilidad.
buen trabajo, no sabía que muchos de este –