CSP: upgrade-insecure-request - cosa succede con le risorse incompatibili con https?

2

Ho due domande sulla direttiva CSP upgrade-insecure-requests che non ho potuto rispondere leggendo specifica .

  1. Che cosa succede alle risorse che non possono essere aggiornate a https (ad esempio certificato non valido)? Saranno bloccati?
  2. Quale tipo di violazione verrà segnalata rispetto all'endpoint specificato da report-uri nella politica? Solo aggiornamenti falliti o anche aggiornamenti riusciti?
posta HorstKevin 06.11.2017 - 09:30
fonte

2 risposte

2

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):

  1. 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:

  1. Violatesthepolicybeingmonitored,therebydeliveringaviolationreportto/endpoint.
  2. Isupgradedfromhttp://example.com/image.png to https://example.com/image.png.
  3. 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.

    
risposta data 13.11.2017 - 17:30
fonte
4

1. Cosa succede se un aggiornamento fallisce?

Esattamente la stessa cosa che accadrebbe se una richiesta HTTPS non aggiornata fallisse. Le specifiche parlano delle richieste di riscrittura . Il modo esatto in cui ciò viene fatto è spiegato nella sezione 4.1 delle specifiche, ma l'essenza è che http:// è sostituito con https:// . Ciò significa che una volta che la richiesta è stata riscritta, è indistinguibile da una richiesta che era HTTPS dall'inizio.

Per essere onesti non riesco a trovare nessuna buona sezione delle specifiche per citare dove questo è chiarissimo. Ma l'esempio uno e tre mostrano direttamente che questo è il caso.

2. Cosa verrà segnalato?

Nessun aggiornamento riuscito, nessun aggiornamento fallito, niente. Dalla sezione 3.1 della specifica:

Monitoring the upgrade-insecure-requests directive has no effect: the directive is ignored when sent via a Content-Security-Policy-Report-Only header.

    
risposta data 13.11.2017 - 17:04
fonte

Leggi altre domande sui tag