Come dicevo in questa risposta su Webmasters.SE, l'unica soluzione generale a questo problema è dai ai tuoi utenti solo l'indirizzo https://
e assicurati che si aspetti di utilizzarlo solo. In definitiva, è responsabilità dell'utente verificare che stiano utilizzando SSL / TLS, come previsto.
Un modo per provare a imporla automaticamente è incoraggiare gli utenti a utilizzare un browser che supporti Sicurezza del trasporto rigoroso HTTP (ancora, fino a quando tutti i browser lo supportano, ciò richiede la consapevolezza dell'utente).
Altre forme di aggiornamenti forzati dal server (inclusa la chiusura della normale porta HTTP) saranno vulnerabili agli attacchi MITM. Detto questo:
- I reindirizzamenti forzati da
http://
a https://
proteggeranno l'utente dagli attacchi passivi di intercettazione. Può anche aiutare a sensibilizzare il problema all'utente (ad esempio se si connettono da una rete di cui possono fidarsi, ci si abitua e potrebbe trovare strano non vedere https://
su altre reti). Per questi motivi, vale la pena farlo comunque; stai almeno mitigando il rischio.
- Sarebbe ideale per ottenere più siti nell'elenco HSTS precaricato , quindi come non essere vulnerabile, anche alla prima connessione. Tuttavia, quando si utilizza HSTS, una connessione su una rete fidata una volta con quella configurazione del browser dovrebbe essere sufficiente per dire ai browser di continuare a utilizzare HTTPS per quel sito.
Una volta fatto, devi ancora dire agli utenti di non ignorare gli avvisi sui certificati.
(È sempre meglio combinare tutto questo con i cookie sicuri, se vengono utilizzati i cookie.)