Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa i cookie firmati
CloudFront i cookie firmati consentono di controllare chi può accedere ai contenuti quando non si desidera modificare quelli correnti URLs o quando si desidera consentire l'accesso a più file con restrizioni, ad esempio tutti i file presenti nell'area riservata agli abbonati di un sito Web. Questo argomento descrive le considerazioni relative all'utilizzo di cookie firmati e come definire cookie firmati utilizzando policy predefinite e personalizzate.
Argomenti
- Decidi di utilizzare politiche predefinite o personalizzate per i cookie firmati
- Funzionamento di cookie firmati
- Impedisci l'uso improprio dei cookie firmati
- When CloudFront controlla la data e l'ora di scadenza in un cookie firmato
- Codice di esempio e strumenti di terza parte.
- Imposta i cookie firmati utilizzando una politica predefinita
- Imposta i cookie firmati utilizzando una politica personalizzata
Decidi di utilizzare politiche predefinite o personalizzate per i cookie firmati
Quando crei un cookie firmato, scrivi una dichiarazione politica in un JSON formato che specifica le restrizioni sul cookie firmato, ad esempio per quanto tempo è valido il cookie. Puoi utilizzare policy predefinite o policy personalizzate. La seguente tabella confronta questi due tipi di policy:
Descrizione | Policy predefinita | Policy personalizzata |
---|---|---|
Puoi riutilizzare la dichiarazione di policy per più file. Per riutilizzare la dichiarazione di policy, devi utilizzare caratteri jolly nell'oggetto |
No |
Sì |
Puoi specificare la data e l'ora in cui gli utenti possono iniziare ad accedere al tuo contenuto. |
No |
Sì (facoltativo) |
Puoi specificare la data e l'ora in cui gli utenti non possono più accedere al tuo contenuto. |
Sì |
Sì |
Puoi specificare l'indirizzo IP o l'intervallo di indirizzi IP degli utenti che possono accedere al tuo contenuto |
No |
Sì (facoltativo) |
Per informazioni sulla creazione di cookie firmati utilizzando una policy predefinita, consulta Imposta i cookie firmati utilizzando una politica predefinita.
Per informazioni sulla creazione di cookie firmati utilizzando una policy personalizzata, consulta Imposta i cookie firmati utilizzando una politica personalizzata.
Funzionamento di cookie firmati
Ecco una panoramica di come CloudFront configuri i cookie firmati e di come CloudFront reagisce quando un utente invia una richiesta che contiene un cookie firmato.
-
Nella tua CloudFront distribuzione, specifica uno o più gruppi di chiavi affidabili, che contengono le chiavi pubbliche che CloudFront possono essere utilizzate per verificare la URL firma. Si utilizzano le chiavi private corrispondenti per firmare ilURLs.
Per ulteriori informazioni, consulta Specificate i firmatari che possono creare cookie firmati e firmati URLs.
-
Sviluppa la tua applicazione per determinare se un utente deve avere accesso al tuo contenuto e, in caso affermativo, per inviare tre intestazioni
Set-Cookie
al visualizzatore (OgniSet-Cookie
intestazione può contenere solo una coppia nome-valore e un cookie CloudFront firmato richiede tre coppie nome-valore.) Devi inviare le intestazioniSet-Cookie
al visualizzatore prima che il visualizzatore richieda il tuo contenuto privato. Se hai impostato un breve periodo di scadenza sul cookie, è possibile che tu intenda inviare tre ulteriori intestazioniSet-Cookie
in risposta a richieste successive, in modo che l'utente continui ad avere accesso.In genere, la CloudFront distribuzione avrà almeno due comportamenti di cache, uno che non richiede l'autenticazione e uno che richiede l'autenticazione. La pagina di errore della parte protetta del sito include un redirector o un collegamento a una pagina di login.
Se configuri la distribuzione per memorizzare nella cache i file basati sui cookie, CloudFront non memorizza nella cache file separati in base agli attributi dei cookie firmati.
-
Un utente accede al tuo sito Web e paga per il contenuto o soddisfa alcuni altri requisiti per l'accesso.
-
La tua applicazione restituisce le intestazioni
Set-Cookie
nella risposta e il visualizzatore archivia la coppia nome-valore. -
L'utente richiede un file.
Il browser dell'utente o un altro visualizzatore ottiene le coppie nome-valore della fase 4 e le aggiunge alla richiesta in un'intestazione
Cookie
. Questo è il cookie firmato. -
CloudFront utilizza la chiave pubblica per convalidare la firma nel cookie firmato e per confermare che il cookie non è stato manomesso. Se la firma non è valida, la richiesta viene respinta.
Se la firma nel cookie è valida, CloudFront esamina l'informativa contenuta nel cookie (o ne crea una se utilizzi una politica predefinita) per confermare che la richiesta è ancora valida. Ad esempio, se hai specificato una data e un'ora di inizio e di fine per il cookie, CloudFront conferma che l'utente sta tentando di accedere ai tuoi contenuti durante il periodo di tempo in cui desideri consentire l'accesso.
Se la richiesta soddisfa i requisiti dell'informativa, CloudFront serve i contenuti come per i contenuti non soggetti a restrizioni: determina se il file è già presente nella cache edge, inoltra la richiesta all'origine se necessario e restituisce il file all'utente.
Impedisci l'uso improprio dei cookie firmati
Se specifichi il parametro Domain
in un'intestazione Set-Cookie
, specifica il valore più preciso possibile per ridurre l'accesso potenziale da parte di un utente con lo stesso nome di dominio radice. Ad esempio, ape.example.com è preferibile a example.com, soprattutto quando non controlli example.com. In questo modo, impedisci agli utenti di accedere al tuo contenuto a partire da www.example.com.
Per impedire questo tipo di attacco, procedi come segue:
-
Escludi gli attributi di cookie
Expires
eMax-Age
, in modo che l'intestazioneSet-Cookie
crei un cookie di sessione. I cookie di sessione vengono eliminati automaticamente quando l'utente chiude il browser, cosa che riduce la possibilità che qualcuno ottenga accesso non autorizzato al tuo contenuto. -
Includi l'attributo
Secure
, in modo che il cookie sia crittografato quando un visualizzatore lo include in una richiesta. -
Quando possibile, utilizza una policy personalizzata e includi l'indirizzo IP del visualizzatore.
-
Nell'attributo
CloudFront-Expires
, specifica la scadenza ragionevole più corta basata sul periodo di tempo durante il quale intendi autorizzare gli utenti ad accedere al tuo contenuto.
When CloudFront controlla la data e l'ora di scadenza in un cookie firmato
Per determinare se un cookie firmato è ancora valido, CloudFront controlla la data e l'ora di scadenza nel cookie al momento della HTTP richiesta. Se un client inizia a scaricare un file di grandi dimensioni immediatamente prima della scadenza, il download viene completato anche se la scadenza avviene durante il download. Se la TCP connessione si interrompe e il client tenta di riavviare il download dopo la scadenza, il download avrà esito negativo.
Se un client utilizza Range GETs per recuperare un file in parti più piccole, qualsiasi GET richiesta che si verifica dopo la scadenza del tempo di scadenza avrà esito negativo. Per ulteriori informazioni su RangeGETs, vedereCome CloudFront elabora le richieste parziali per un oggetto (intervalloGETs).
Codice di esempio e strumenti di terza parte.
Il codice di esempio per i contenuti privati mostra solo come creare la firma per signedURLs. Tuttavia, il processo per la creazione di una firma per un cookie firmato è molto simile, di conseguenza una gran parte del codice di esempio è ancora rilevante. Per ulteriori informazioni, consulta i seguenti argomenti: