Estoy en el proceso de implementar un encabezado CSP para una aplicación web, con el objetivo de reducir posibles ataques XSS. Consulte CSP para obtener una descripción general de CSP. Proporcioné la directiva base-uri como 'yo' y esto funciona como se esperaba y las infracciones se informaron al informe uri. Consulte base-uri para obtener una explicación de la base-uri directiva.
Lo que me sorprende es que cuando uso Chrome (versión 56.0.2924.87 de 64 bits) para "Ver origen de página" hay un informe de violación de CSP. Aquí hay un ejemplo del informe de violación:
{
"csp-report": {
"document-uri": "http://localhost:8080/frontend/Page1.action?param1=1",
"referrer": "",
"violated-directive": "base-uri",
"effective-directive": "base-uri",
"original-policy": "base-uri 'self'; report-uri /frontend/CspReport.action?",
"disposition": "report",
"blocked-uri": "http://localhost:8080/frontend/",
"status-code": 200
}
}
Simplifiqué la política para asegurarme de que nada más interfiera. Por lo que entiendo, el "uri bloqueado" debe coincidir con la palabra clave 'self' porque coincide con el principio del "uri de documento".
Lo que hace que esto sea más extraño es que solo ocurre cuando se visualiza la fuente en algunas páginas (pero en estas páginas ocurre el 100% del tiempo) y no parece suceder en Firefox y no sucede cuando simplemente se navega entre páginas.
Entonces, la pregunta es ¿por qué es esto una violación de CSP cuando parece no violar la directiva especificada?