violates the script missing htaccess google following csp content because css content-security-policy

css - the - google analytics content security policy



CSP style-src: ''unsafe-inline''-¿vale la pena? (1)

Actualmente estoy usando Modernizr en todos mis sitios y resulta que debido a su funcionamiento requiere que se permitan los estilos unsafe-inline . Ya no estoy permitiendo scripts en línea y unsafe-eval para scripts. ¿Le interesa saber qué riesgos de seguridad existen para permitir los estilos en línea?


Permitir estilos en línea te hace susceptible a la "otra XSS". Ataques de diseño de sitios cruzados.

La idea aquí es que cualquier lugar donde un usuario pueda inyectar un atributo de estilo en su documento puede modificar la apariencia de su página de la forma que desee. Enumeraré un par de posibles ataques ordenados por el aumento de la gravedad:

  1. Podrían volver tu página de color rosa, y hacer que se vea tonto.
  2. Podrían modificar el texto de tu página, haciendo que parezca que estás diciendo algo ofensivo que podría ofender a tu audiencia de lectores.
  3. Podrían hacer que el contenido generado por el usuario, como un enlace que proporcionaron, aparezca fuera de los lugares normales donde la gente espera ver el contenido del usuario, lo que lo hace oficial. (por ejemplo, reemplazando un botón de "Iniciar sesión" en su sitio con su propio enlace).
  4. Usando reglas de estilo cuidadosamente diseñadas, podrían enviar cualquier información incluida en la página a dominios externos y exponer o usar esos datos de manera malintencionada contra sus usuarios.

El cuarto ejemplo, con la información que se filtra a los dominios externos se podría evitar por completo a pesar de la unsafe-inline siempre y cuando se asegure de que sus otras reglas de CSP nunca permitan que ningún tipo de solicitud vaya a un dominio no confiable o de comodín. Pero los primeros 3 siempre serán posibles si no bloquea un atributo de estilo en algún lugar.

Mike West hizo una buena talk sobre esto para CSSConf hace unos años para algunos ejemplos más.