Se il browser è già "a conoscenza" della politica HSTS per questo dominio, il browser immediatamente riscriverà la richiesta per andare su HTTPS e fallirà se ciò non è possibile. Ci sono due modi in cui un browser può prendere coscienza di un criterio HSTS:
- Hanno già visitato il sito con una politica HSTS valida e registrato quella visita HSTS.
- Avere una politica HSTS precaricata dall'operatore del sito, in modo tale che la politica sia inclusa quando l'utente scarica / aggiorna il browser. Ogni browser ha la propria procedura per il precaricamento dell'HSTS.
Quindi, se la tua politica non è presente nell'elenco di precaricamento e l'utente non ha mai visitato il tuo sito in precedenza, la prima richiesta potrebbe passare su HTTP. (E, nel caso di un MITM attivo, potrebbe rimanere su HTTP poiché possono rimuovere l'intestazione HSTS.)
Modifica: includeSubdomains si applica ai sottodomini del dominio corrente visitato , quindi un utente che visita www.example.com
non riceverà una politica per *.example.com
, ma *.www.example.com
. Se si desidera applicare la politica a tutti i sottodomini del proprio dominio di primo livello, è necessario ottenere l'utente in qualche modo. (Questo non deve essere un reindirizzamento, potrebbe anche essere un IFRAME.) Per RFC:
The OPTIONAL "includeSubDomains" directive is a valueless directive
which, if present (i.e., it is "asserted"), signals the UA that the
HSTS Policy applies to this HSTS Host as well as any subdomains of the
host's domain name.