Ambientazione config.force_ssl
include ActionDispatch::SSL
. I ActionDispatch::SSL
documenti descrivono la funzionalità come segue (enfasi aggiunti per chiarezza):
Vedi le include qui e la documentazione per ActionDispatch :: SSL qui .
DOCS
Questo middleware viene aggiunto allo stack quando config.force_ssl = true
e vengono passate le opzioni impostate in config.ssl_options
. Esegue tre lavori per applicare richieste HTTP sicure:
Reindirizzamento TLS: reindirizza permanentemente le richieste http: // a https: //
con lo stesso host URL, percorso, ecc. Abilitato per impostazione predefinita. Imposta config.ssl_options
per modificare l'URL di destinazione (esredirect: { host: "secure.widgets.com", port: 8080 }
) O impostare
redirect: false
per disabilitare questa funzione.
Cookie protetti: imposta il secure
flag sui cookie per indicare ai browser che non devono essere inviati insieme alle richieste http: //. Abilitato per impostazione predefinita. Impostato
config.ssl_options
con secure_cookies: false
per disabilitare questa funzione.
HTTP Strict Transport Security (HSTS): indica al browser di ricordare questo sito come solo TLS e di reindirizzare automaticamente le richieste non TLS . Abilitato per impostazione predefinita. Configura config.ssl_options
con hsts: false
per disabilitare. Impostato config.ssl_options
con hsts: { … }
per configurare HSTS:
expires
: Quanto tempo, in secondi, queste impostazioni rimarranno. Il valore predefinito è
180.days
(consigliato). Il minimo richiesto per qualificarsi per gli elenchi di precaricamento del browser è 18.weeks
.
subdomains
: Impostare su true
per indicare al browser di applicare queste impostazioni a tutti i sottodomini. Questo protegge i tuoi cookie dall'intercettazione da parte di un sito vulnerabile su un sottodominio. Il valore predefinito è true
.
preload
: Annuncia che questo sito potrebbe essere incluso negli elenchi HSTS precaricati dei browser. HSTS protegge il tuo sito a ogni visita tranne la prima, poiché non ha ancora visto l'intestazione HSTS. Per colmare questa lacuna, i fornitori di browser includono un elenco integrato di siti abilitati per HSTS. Vai a https://hstspreload.appspot.com per inviare il tuo sito per l'inclusione. Per disattivare HSTS, omettere l'intestazione non è sufficiente. I browser ricorderanno la direttiva HSTS originale fino alla scadenza. Utilizza invece l'intestazione per dire ai browser di far scadere immediatamente l'HSTS. L'impostazione hsts: false
è una scorciatoia perhsts: { expires: 0 }
.
Le richieste possono disattivare il reindirizzamento con exclude
:
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }