È più sicuro specificare https: // davanti a un dominio?

4

Quando richiedi un sito web, diciamo "crypto.stackexchange.com", spesso ti viene reindirizzato a una connessione sicura, in questo caso " link ". Dovrei quindi richiedere una connessione non protetta (http), essere reindirizzato al protocollo https sicuro dalla risposta http e quindi effettuare una richiesta meno sicura?

    
posta ExchangeIdeas 15.03.2018 - 11:16
fonte

2 risposte

5

Would I then request an insecure connection (http), get redirected to the secure https protocol by the http response, and thus making a less secure request?

Dipende.
In generale, la risposta è sì, stai facendo prima una richiesta HTTP non sicura e poi il server ti dice (eventualmente con una risposta 301 ) che dovresti usare il sito HTTPS e il browser lo carica. Naturalmente, alla prima richiesta insicura potrebbe accadere qualsiasi cosa, incluso il fatto che venga offerto un sito web falso. Tuttavia ci sono (almeno) tre eccezioni a questa regola, che renderanno il browser in grado di cercare direttamente la versione HTTPS. Quindi passiamo attraverso loro!

  • 301 Reindirizza la cache. 301 è il codice di stato HTTP per "permanentemente spostato" e alcuni browser memorizzano nella cache questa risposta e non provano nemmeno a richiedere più il vecchio sito ma ti inviano direttamente al nuovo uno, per ragioni di prestazioni e in questo caso anche un reindirizzamento da HTTP a HTTPS trarrebbe profitto da questo.
  • Componenti aggiuntivi del browser. Ci sono componenti aggiuntivi del browser che mantengono un database di domini che supportano HTTPS (in qualche modo) e se richiedi i dati da uno di questi domini, il componente aggiuntivo lo riscriverà automaticamente richiesta di chiedere la versione HTTPS del sito. HTTPS Everywhere è famoso per questo e copre una vasta gamma di siti Web che non considerano il loro HTTPS "pronto per la produzione" (< a href="https://meta.stackexchange.com/q/292058/296259"> come Stackexchange prima di marzo 2017 ).
  • HTTP Strict Transport Security (HSTS). Questo è un flag nell'intestazione della risposta HTTP che afferma che è possibile accedere al sito (e facoltativamente a tutti i sottodomini) utilizzando HTTPS durante i prossimi giorni specificati senza eccezioni . In questo modo, quando si richiede un dominio HSTS noto, il browser convertirà automaticamente la richiesta HTTP in una richiesta HTTPS automaticamente. Come bonus, puoi registrarti al pre-caricamento di HSTS per il tuo sito con i rivenditori di browser e poi i browser verranno forniti con la tua voce HSTS pre-equipaggiata a partire dal prossimo aggiornamento. Stackexchange ha implementato HSTS senza pre-caricamento (sulla maggior parte dei siti).
risposta data 15.03.2018 - 18:33
fonte
1

Sì, è meglio specificare in modo esplicito https dall'inizio.

Mentre i "veri" webmaster implementano cose come i reindirizzamenti 301/302 e HSTS. Non tutti lo fanno. Recentemente ho eseguito una scansione dei siti web governativi malesi e ho scoperto che un numero significativo di siti non ti reindirizza da http a https - anche se esiste il sito https .

Ciò significa che i client che chiamano il sito http ottengono solo il sito http , anche se esiste un'opzione più sicura. Il client deve chiamare esplicitamente https se desidera la versione sicura.

Altri siti utilizzano javascript per reindirizzare gli utenti da http a https , che può fallire se hai bloccato script come me.

Specificando https dal get-go, dovrai prima richiedere il sito protetto, risparmiando tempo (non più reindirizzamenti) e assicurandoti di ottenere sempre la pagina protetta.

Purtroppo, il motivo per cui i browser non rendono questo comportamento predefinito è che non tutti i siti hanno https - ma ogni sito con https dovrebbe avere un http (anche solo per il reindirizzamento), quindi tutto l'impostazione predefinita è HTTP, e si spera che si verifichi un reindirizzamento.

Come ultima nota, se il sito ha HSTS. Il browser reindirizzerà automaticamente se stesso (reindirizzamento 307) per max-age su cui HSTS è impostato, nel qual caso il browser assume come valore predefinito https fino alla scadenza della durata massima.

    
risposta data 20.03.2018 - 09:16
fonte

Leggi altre domande sui tag