site somente HTTPS

4

É aceitável executar um site que só é exibido em HTTPS e não em HTTP. Considere situações em que nomes de domínio simples são digitados na barra de endereço. Geralmente, os sites redirecionam o usuário para a versão HTTPS.

Há um bom motivo para querer fornecer apenas HTTPS. Considere este cenário:

  • O usuário é um desenvolvedor que usa uma API REST para conversar com o servidor.
  • O usuário esquece os "s" no final de "http" ao postar informações potencialmente confidenciais.
  • O POST liga sua carga em um canal não seguro vulnerável à escuta habitual.
  • Somente após a conclusão do POST, o servidor envia um código de redirecionamento para o site seguro
por Mansour 26.02.2012 / 21:11

2 respostas

3

Depende do site.

A situação que você descreveu acima só pode ser evitada se o servidor não aceitar a conexão na porta 80; um redirecionamento fácil de usar ou até mesmo uma página de erro que diz "use https!" permitiria que a solicitação da API não criptografada fosse enviada. É claro que, quando não funciona, a pessoa que faz a ligação deve perceber e corrigir o erro após uma tentativa malsucedida - e esperamos que não esteja testando com dados confidenciais.

O fato de essa única tentativa de comunicação não segura ser aceitável (esperamos que com dados não confidenciais) depende completamente de suas necessidades de segurança.

Se o site for usado somente para chamadas de API, é bom deixar a porta 80 desativada.

Se os usuários estiverem visitando o site em um navegador (inserindo o endereço manualmente), não espere poder deixar a porta 80 sem confusão e usuários irritados.

    
por 26.02.2012 / 21:20
2

Eu realmente não vejo nenhuma boa razão para não. Se o seu site tiver que ser seguro até o fim, nada impede que você seja veiculado somente por SSL.

Veja uma KB sobre como fazer isso: Apache: redirecionar http para https Conexão segura do Apache - force as conexões HTTPS

Para permitir somente conexões SSL, você também pode usar a diretiva SSLRequireSSL na configuração do servidor

(Não tenho certeza se isso seria adequado para você, pois redirecionaria todo o tráfego na porta 80 para a porta 443 para todo o seu servidor, mas isso também poderia funcionar):

Modifique seus iptables para redirecionar a porta 80 para a porta 443:

--iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
--iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
--iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 443
    
por 26.02.2012 / 21:23

Tags