Força o site inteiro https sem redirecionar http para https

13

Houve muitas discussões enquanto pesquisava como fazer todo o meu site https. A maioria das respostas foi redirecionar http para https (arquivo .htaccess), o que não é bom, porque não é bom fazer o mesmo trabalho duas vezes (duas solicitações). Além disso, o "homem no meio" primeiro assume http, e eu quero que meu site vá diretamente em https. Existe outra maneira de tornar todo o seu site https e como fazer isso? Por exemplo, quando o usuário digita em example.com, esse exemplo.com vai automaticamente para https, sem redirecionar de http ou qualquer outra coisa primeiro?

    
por Marko Tamburic 03.02.2014 / 16:38

5 respostas

20

Não. Você não pode magicamente fazer o navegador do visitante escolher o protocolo correto. Um redirecionamento é a maneira de fazer isso.

    
por 03.02.2014 / 16:42
22
O

link permite que seu servidor indique que o domínio só deve ser acessado via HTTPS. Isso se aplica somente a solicitações subsequentes, portanto, haveria um carregamento HTTP inicial, mas as solicitações futuras carregariam HTTPS mesmo que alguém explicitamente digitasse HTTP.

O IE ainda não é compatível, mas todos os outros principais aplicativos o fazem.

    
por 03.02.2014 / 16:54
7

Como outros já disseram, você não pode forçar os usuários a escolher o protocolo correto. Mas quando o usuário tenta usar o HTTP, o que você deve fazer? Um redirecionamento também é insuficiente, porque um invasor sentado entre você e o cliente pode interceptar o redirecionamento, para que o cliente nunca o veja. O cliente continuará a enviar HTTP simples, e o invasor removerá a camada SSL do servidor ( ataque de remoção de SSL ).

A única maneira segura de evitar isso é não exibir HTTP em tudo . Não responda na porta 80, exceto talvez para servir uma página de texto simples direcionando o usuário a tentar novamente com HTTPS (mas não fornecendo um link, que o atacante poderia manipular). Isso forçará o usuário a digitar https:// em seu navegador, para que eles iniciem a conexão com SSL e evitem o ataque MITM.

    
por 03.02.2014 / 17:17
1

Não é totalmente verdade: Como usar DNS / Hostnames ou outras formas de resolver um IP específico: Porta

Existe uma maneira, mas a maioria dos navegadores não implementa o rfc2782.

    
por 03.02.2014 / 18:39
1

O ceejayoz tem a melhor resposta para evitar o ataque especificamente mencionado aqui, mas eu quero também apontar o que muitas pessoas aqui estão perdendo, que é basicamente que o HTTP já descobriu a outra parte. Você quer fazer um redirecionamento 301 permanente. Isso informa ao cliente para fazer outras solicitações ao novo endereço. Então, sim, se alguém digitar a URL errada, eles farão 2 solicitações MAS, no futuro, um bom cliente deverá detectar solicitações para essa URL e fazer a solicitação correta para evitar mais solicitações desperdiçadas. O problema é que isso é apenas para esse URL exato. A HSTS melhora esse esquema dizendo também que 'nos próximos n segundos também não permitem conexões não seguras deste domínio'.

Os usuários não devem visitar sites confidenciais em locais inseguros. Eles especialmente não devem se inscrever para eles em locais inseguros. Esses são princípios básicos de segurança do usuário, que devem ser ensinados da mesma forma que "não abra anexos de fontes não confiáveis". Quais são realmente a melhor resposta para impedir ataques do MiM para sites que nunca foram visitados.

Como observação, alguns navegadores melhoram isso dizendo também que certos sites conhecidos sempre usam o HSTS. Infelizmente, você não pode simplesmente se adicionar a essa lista com facilidade.

Leitura adicional: link

link

    
por 04.02.2014 / 05:37

Tags