Qual é uma maneira limpa/simples de garantir a segurança de uma página?
Pergunta
Supondo que você tenha um formulário que coleta e envia informações confidenciais e deseja garantir que elas nunca sejam acessadas por meios inseguros (não HTTPS), qual a melhor forma de aplicar essa política?
Solução
Acho que a solução mais à prova de balas é manter o código apenas dentro da raiz do documento SSL.Isso garantirá que você (ou outro desenvolvedor no futuro) não possa vincular acidentalmente a uma versão não segura do formulário.Se você tiver o formulário HTTP e HTTPS, talvez nem perceba se o formulário errado for usado inadvertidamente.
Se isso não for possível, eu tomaria pelo menos duas precauções.Reescreva o URL do Apache e verifique seu código para ter certeza de que a sessão está criptografada - verifique os cabeçalhos HTTP.
Outras dicas
Se você estiver executando o Apache, você pode colocar um RewriteRule
na tua .htaccess
, igual a:
RewriteCond %{HTTPS} "off"
RewriteRule /mypage.html https://example.com/mypage.html
Dê uma olhada neste: http://www.dotnetmonster.com/Uwe/Forum.aspx/asp-net/75369/Enforcing-https
Editar:Isso mostra soluções do ponto de vista do IIS, mas você deve ser capaz de configurar qualquer servidor web para isso.
No IIS?Vá para as configurações de segurança e clique em “Exigir conexão segura”.Como alternativa, você pode verificar as variáveis do servidor no carregamento da página e redirecionar para a página segura.
Sugiro olhar a solicitação no código que renderiza o formulário e, se não estiver usando SSL, emitir um redirecionamento para a URL https.
Você também pode usar uma regra de reescrita no Apache para redirecionar o usuário.
Ou você pode simplesmente não disponibilizar a página via HTTP e mantê-la apenas na raiz do documento do seu site HTTPS.