Poiché il tuo sito può essere consultato in modalità http, presumo che non contenga contenuti altamente sensibili. La scelta tra HTTP e HTTPS è una questione di scambio di sicurezza per le prestazioni:
- tutto ciò che può essere fatto in HTTP può essere fatto in HTTPS e ottieni una maggiore sicurezza
- HTTPS consuma più risorse
Come regola generale, utilizza HTTPS se offri abbastanza risorse e HTTP se il valore dei dati è basso.
Può essere ammesso combinare HTTP per pagine normali e HTTPS per pagine sensibili come lo scambio di credenziali fornito:
- il server rifiuterà qualsiasi richiesta HTTP a una pagina sicura = > se una pagina contenente collegamenti HTTPS viene riscritta con collegamenti HTTP, otterrai un reindirizzamento alla pagina HTTPS o un errore
- la sicurezza generale del sito è a livello HTTP
- sei sicuro che i tuoi utenti controllino che le pagine sensibili provengano dal tuo sito
Ciò che devi sapere è che non appena la sessione utilizza un cookie non protetto (modalità HTTP) non devi essere sicuro di quella sessione per accedere alle informazioni riservate.
Quindi questo è corretto: consultazione HTTP = > link a HTTPS per login = > nuova sessione dopo l'accesso = > Consultazione HTTP: la sicurezza complessiva è di basso livello perché il cookie di sessione non è sicuro e si proteggono solo le credenziali
Ma questo non va bene: login HTTPS = > Consultazione HTTP di pagine non sensibili = > Consultazione HTTPS / modifica di dati sensibili
perché qui il livello di sicurezza della sessione è caduto su HTTP e viene ancora utilizzato per operazioni sensibili.
Il minimo dovrebbe essere:
... = > Operazioni HTTP = > Controllo HTTPS delle credenziali o di un cookie sicuro = > nuova sessione = > Operazioni HTTPS ...
Il più grande rischio qui è che dovresti istruire i tuoi utenti che la pagina di accesso è speciale e che dovrebbero controllare che il piccolo lucchetto sia presente e l'url sia nel dominio corretto. Il rischio è qui:
- un utente malintenzionato è riuscito a ottenere una copia della pagina di accesso
- riesce a inviare uno dei tuoi utenti a una pagina che controlla
- l'utente scrive le sue credenziali
= > l'utente malintenzionato ha ottenuto tutti gli accessi consentiti all'utente
TL / DR: avere solo una parte del sito (inclusa la pagina di accesso) in HTTPS è accettabile solo se:
- la pagina di accesso è accessibile solo in HTTPS e crea una nuova sessione
- qualsiasi transizione da HTTP a HTTPS richiede un controllo delle credenziali (o di uno speciale cookie sicuro)
- tutti i tuoi utenti controllano che l'URL della pagina di accesso sia corretto prima di inserire le loro credenziali