É possível ter o IIS requer SSL e redirecionar HTTP ao mesmo tempo?

2

Atualmente, nosso aplicativo possui um redirecionamento HTTP para HTTPS. Agora, queremos remover completamente essa ligação HTTP por motivos de segurança e fazer com que nossos usuários usem HTTPS apenas configurando "Requerer SSL" no IIS.

O problema é que ainda temos cerca de 10% dos usuários que fazem uso dessa página de redirecionamento de HTTP, portanto, não podemos simplesmente desativar o redirecionamento de HTTP. Muitos usuários podem acabar ligando para o helpdesk.

Agora, uma idéia é, em uma primeira versão, ter o link da página de redirecionamento HTTP para uma nova página que contém informações sobre o novo link a ser usado. Em uma próxima versão, podemos ativar a opção "Exigir SSL".

Esta solução parece bem, mas seria melhor ter um redirecionamento HTTP para a página informativa e exigir SSL ao mesmo tempo. Isso é possível?

Quaisquer outras sugestões sobre este assunto também são muito bem-vindas. Obrigado.

    
por Erwin Rooijakkers 07.01.2015 / 12:17

4 respostas

2

Se você ativar Exigir SSL, as solicitações HTTP falharão imediatamente.

Um truque que usamos (usando o asp.net) antes de fazer o mesmo foi verificar o protocolo na página padrão e, em seguida, emitir um aviso amigável, por exemplo

If Not Request.IsSecureConnection Then
    loginform.visible = False
    ltl_warning.Text = "Non-secure connections will be disabled in one month, please use the secure address only: https://mysite.com"
End If
    
por 07.01.2015 / 12:24
3

O "Exigir SSL" ainda responde sem SSL, então os ataques MITM ainda são uma possibilidade.

Para proteger o site, você deve usar o redirecionamento e, em seguida, enviar o Cabeçalho Strict-Transport-Security , para que, após a primeira visita, o navegador do usuário não tente se conectar sem usar SSL.

Leitura Adicional

por 20.04.2018 / 20:23
0

É possível exigir SSL e redirecionar, substituindo a página 403.htm pelo seguinte:

<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
    var httpURL= window.location.hostname + window.location.pathname + window.location.search;
    var httpsURL= "https://" + httpURL;
    window.location = httpsURL;
}
redirectHttpToHttps();
</script>
<body>
</body>
</html>

Não tenho certeza se essa solução leva em consideração os problemas de segurança que estamos tentando corrigir pelo redirecionamento.

    
por 07.01.2015 / 14:13
0

Bradlis7 tem a única resposta factualmente correta aqui. Se o MITM é sua preocupação, nada do que você fizer no seu site resolverá o problema. Você pode ter o HTTP totalmente desativado para o seu site, se houver um agente man-in-the-middle atuando no lado do cliente, ele apenas dirá "sim, definitivamente há um site HTTP, siga-me".

Na realidade, você está fazendo muito mais bem para seus usuários simplesmente encaminhando todo o tráfego HTTP para HTTPS. Também na minha opinião, você deve encaminhar solicitações de qualquer URL não HTTPS para sua página inicial (preferencialmente com uma observação), não para a versão dinâmica do URL solicitado, pois o URL HTTP solicitado poderia ter sido manipulado pelo MITM de terceiros você está preocupado.

    
por 10.07.2018 / 20:28