6. Syntax (Sintassi)
Questa sezione definisce la sintassi del campo di intestazione di risposta HTTP Strict-Transport-Security e delle sue direttive, e fornisce alcuni esempi.
Successivamente, la sezione 7 ("Server Processing Model") descrive dettagliatamente come gli host utilizzano questo campo di intestazione per dichiarare la loro politica HSTS, e la sezione 8 ("User Agent Processing Model") descrive dettagliatamente come gli agenti utente elaborano il campo di intestazione e applicano la politica HSTS.
6.1. Strict-Transport-Security HTTP Response Header Field (Campo di Intestazione di Risposta HTTP Strict-Transport-Security)
Il campo di intestazione di risposta HTTP Strict-Transport-Security (campo di intestazione STS) indica al UA che deve (MUST) applicare una politica HSTS all'host che ha emesso il messaggio di risposta contenente questo campo di intestazione.
La sintassi ABNF (Forma di Backus-Naur Aumentata (Augmented Backus-Naur Form)) del campo di intestazione STS è la seguente. Si basa sulla sintassi generica definita nella sezione 2 di [RFC2616] (che include il concetto di "spazio bianco lineare implicito (implied linear whitespace)", noto anche come "*LWS implicito").
Strict-Transport-Security = "Strict-Transport-Security" ":"
[ directive ] *( ";" [ directive ] )
directive = directive-name [ "=" directive-value ]
directive-name = token
directive-value = token | quoted-string
Dove:
token = <token, defined in [RFC2616], Section 2.2>
quoted-string = <quoted-string, defined in [RFC2616], Section 2.2>
Le due direttive definite in questa specifica sono descritte di seguito. I requisiti generali per le direttive sono:
-
L'ordine in cui appaiono le direttive non è importante.
-
Tutte le direttive devono (MUST) apparire una sola volta nel campo di intestazione STS. Le direttive sono opzionali o richieste, come stabilito nella loro definizione.
-
I nomi delle direttive non fanno distinzione tra maiuscole e minuscole.
-
I UA devono (MUST) ignorare qualsiasi campo di intestazione STS contenente una direttiva o altri dati di valore del campo di intestazione che non si conformano alla sintassi definita in questa specifica.
-
Se il campo di intestazione STS contiene una direttiva che il UA non riconosce, il UA deve (MUST) ignorare la direttiva non riconosciuta, e se il campo di intestazione STS soddisfa altrimenti i requisiti di cui sopra (da 1 a 4), il UA deve (MUST) elaborare le direttive riconosciute.
Direttive aggiuntive che estendono le funzionalità semantiche del campo di intestazione STS possono essere definite in altre specifiche, a condizione che venga definito un registro per esse (con la definizione di politica IANA di IETF Review [RFC5226]).
NOTA: Tali direttive future saranno ignorate dai UA che implementano solo questa specifica, così come dai UA generalmente non conformi. Vedere la sezione 14.2 ("Non-Conformant User Agent Implications") per ulteriori discussioni.
6.1.1. The max-age Directive (La Direttiva max-age)
La direttiva richiesta (REQUIRED) "max-age" specifica il numero di secondi, dopo la ricezione del campo di intestazione STS, durante i quali il UA tratta l'host (da cui è stato ricevuto il messaggio) come host HSTS conosciuto. Vedere anche la sezione 8.1.1 ("Noting an HSTS Host - Storage Model"). La produzione delta-seconds è specificata in [RFC2616].
La sintassi del valore richiesto (REQUIRED) della direttiva max-age (dopo l'escape della stringa tra virgolette, se necessario) è definita come segue:
max-age-value = delta-seconds
delta-seconds = <1*DIGIT, defined in [RFC2616], Section 3.3.2>
NOTA: Un valore max-age di zero (cioè, "max-age=0") segnala al UA di cessare di trattare l'host come host HSTS conosciuto, inclusa la direttiva includeSubDomains se è stata asserita per quell'host HSTS. Vedere anche la sezione 8.1 ("Strict-Transport-Security Response Header Field Processing").
6.1.2. The includeSubDomains Directive (La Direttiva includeSubDomains)
La direttiva opzionale (OPTIONAL) "includeSubDomains" è una direttiva senza valore che, se presente (cioè, è "asserita"), segnala al UA che la politica HSTS si applica a questo host HSTS così come a tutti i sottodomini del nome di dominio dell'host.
6.2. Examples (Esempi)
Il seguente campo di intestazione HSTS specifica che la politica HSTS rimane valida per un anno (circa 31536000 secondi in un anno), e che la politica si applica solo al dominio dell'host HSTS che l'ha emessa:
Strict-Transport-Security: max-age=31536000
Il seguente campo di intestazione HSTS specifica che la politica HSTS rimane valida per circa sei mesi, e che la politica si applica al dominio dell'host HSTS emittente e a tutti i suoi sottodomini:
Strict-Transport-Security: max-age=15768000 ; includeSubDomains