Sono in procinto di implementare un'intestazione CSP per un'applicazione web, con l'obiettivo di ridurre possibili attacchi XSS. Vedi CSP per una panoramica di CSP. Ho fornito la direttiva base-uri come 'self' e questo funziona come previsto con le violazioni segnalate al report-uri. Vedi base-uri per una spiegazione della base-uri direttiva.
Ciò che mi sorprende è che quando uso chrome (versione 56.0.2924.87 a 64 bit) su "Visualizza origine pagina" c'è un rapporto di violazione CSP. Ecco un esempio del rapporto sulle violazioni:
{
"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
}
}
Ho semplificato la politica per assicurarmi che nient'altro interferisca. Da quello che capisco il "block-uri" dovrebbe corrispondere alla parola chiave "self" perché corrisponde all'inizio del "document-uri".
Ciò che rende questo più strano è che accade solo quando si guarda la fonte su alcune pagine (ma su queste pagine accade il 100% delle volte) e non sembra accadere su Firefox e non accade quando si naviga semplicemente tra pagine.
Quindi, la domanda è: perché questa è una violazione CSP quando sembra non violare la direttiva specificata?