What happens to ressources which can't be upgraded to https (e.g. invalid certificate)? Will they be blocked?
La richiesta verrà effettuata su HTTPS. Se la richiesta non riesce, fallisce. Fare altrimenti aprirebbe il sistema fino a downgrade degli attacchi, rendendolo effettivamente inutile contro un aggressore MITM.
Questo comportamento è specificato nella Standard di recupero dal WHATWG (che è referenziato nella specifica upgrade-insecure-richieste):
- Upgrade request to a potentially secure URL, if appropriate.
Poiché questo passaggio si verifica prima che vengano eseguite le richieste effettive di rete, il resto del processo si comporta esattamente come se la richiesta fosse originariamente creata come HTTPS dall'inizio.
What kind of violations will be reported against the endpoint specified by report-uri
in the policy? Just failed upgrades or also successful upgrades?
Nessuna violazione verrà segnalata da una direttiva CSP utilizzando upgrade-insecure-requests
. In base alle specifiche :
Monitoring the upgrade-insecure-requests directive has no effect: the directive is ignored when sent via a Content-Security-Policy-Report-Only header. Authors can determine whether or not upgraded resources' original URLs were insecure via Content-Security-Policy-Report-Only. For example, Content-Security-Policy-Report-Only
: default-src https:; report-uri /endpoint
. See §3.4 Reporting Upgrades for additional detail.
Quindi, se desideri informazioni su quali richieste vengono aggiornate tramite CSP, devi utilizzare un hard fail (non upgrade-insecure-requests
) con l'intestazione Report-Only.
Sezione 3.4 spiega ulteriormente questo nell'esempio 9:
Within the context of a protected resource which contains the insecure image <img src="http://example.com/image.png">
,anddeliversthefollowingHTTPheaders:
Content-Security-Policy:upgrade-insecure-requests;default-srchttps:Content-Security-Policy-Report-Only:default-srchttps:;report-uri/endpoint
Theuseragentwillfireoffarequestrequestthat:
- Violatesthepolicybeingmonitored,therebydeliveringaviolationreportto/endpoint.
- Isupgradedfromhttp://example.com/image.png to https://example.com/image.png.
- Does not violate the policy being enforced.
Nota che il punto 3 qui è la chiave. Poiché la richiesta viene aggiornata nel passaggio 2, la richiesta non "viola la politica applicata". Secondo le specifiche CSP , vengono segnalate solo violazioni del criterio CSP:
When one or more of a policy’s directives is violated, a violation report may be generated and sent out to a reporting endpoint associated with the policy.