Perché non servo solo https?
I motivi principali sono il comportamento predefinito dei browser e la compatibilità con le versioni precedenti .
Comportamento predefinito
Quando un utente finale (cioè, senza conoscenza dei protocolli o della sicurezza) digita l'indirizzo del sito Web nel proprio browser, il browser utilizza HTTP di default. Vedi questa domanda per ulteriori informazioni sul motivo per cui i browser scelgono questo comportamento.
Pertanto, è probabile che gli utenti non saranno in grado di accedere al tuo sito web.
Compatibilità con le versioni precedenti
È possibile che alcuni utenti con vecchi sistemi e vecchi browser non supportino HTTPS o, più probabilmente, non abbiano un database aggiornato di certificati radice o non supportano alcuni protocolli.
In tal caso, non saranno in grado di accedere al sito Web o avranno un avviso di sicurezza. Devi definire se la sicurezza dei tuoi utenti finali è abbastanza importante da forzare HTTPS.
Molti siti web ascoltano ancora HTTP ma reindirizzano automaticamente a HTTPS e ignorano gli utenti con veramente vecchi browser.
qualcuno potrebbe falsificare http://www.example.com se non imposto HSTS?
Se un utente malintenzionato desidera falsificare http://www.example.com
, deve assumere il controllo del dominio o assumere il controllo dell'indirizzo IP in qualche modo.
Presumo che intendessi: un attaccante può eseguire un attacco man-in-the-middle?
In tal caso sì, ma anche con o senza HSTS:
-
Senza HSTS : un utente malintenzionato può facilmente trovarsi al centro del tuo server e dell'utente ed essere attivo (cioè, modificare il contenuto) o passivo (cioè, intercettare)
-
Con HSTS : la prima volta che un utente tenta di visitare il sito utilizzando HTTP, un utente malintenzionato potrebbe costringere l'utente a utilizzare HTTP. Tuttavia, l'attaccante ha una finestra di tempo limitata in cui può eseguire il suo attacco.
Cosa dovresti fare?
Come molti siti web, dovresti consentire le connessioni HTTP e fare in modo che il tuo server reindirizzi l'utente alla versione HTTPS. In questo modo sovrascrivi il comportamento predefinito dei browser e assicurati che i tuoi utenti utilizzino la versione HTTPS.
I vecchi sistemi senza i protocolli appropriati o i certificati di root non saranno in grado di accedere al sito (o almeno avranno un avviso ), ma a seconda della base di utenti questo non dovrebbe essere un problema.
Conclusione
Disabilitare HTTP farà più male che bene. In realtà non fornisce più sicurezza.
Qualsiasi sicurezza aggiunta per proteggere una risorsa è inutile se impedisce alla maggior parte dei suoi utenti di accedervi. Se i tuoi utenti finali non possono accedere al tuo sito web perché il loro browser è predefinito su HTTP e tu non ascolti le connessioni HTTP, qual è il vantaggio?
Esegui semplicemente il reindirizzamento HTTP 301 alla versione HTTPS.
Domande correlate