Antes de entrarmos no detalhe técnico, primeiro precisamos entender o que é HSTS, abaixo uma breve descrição.
O que é HSTS?
HSTS significa HTTP Strick Transport Security, o HSTS permiti que os sites possam ser acessados apenas de forma segura utilizando o protocolo HTTPS (Hyper Text Transfer Protocol Secure), com a implementação do HSTS minimizamos o impacto de uma determinada aplicação aceitar os protocolos HTTP e HTTPS, garantimos que toda a navegação em nossa aplicação será segura. Além disso existem outros ganhos com essa implementação, para entender em detalhes acesse a RFC 6797 nesse link.
Como implementamos?
A implementação do HSTS é muito simples, precisamos configurar um Custom Header via web.config e/ou IIS Manager, através do WebApp é muito mais simples fazer via web.config, porém existem outras possibilidades (IIS Manager, Web.Config, ApplicationHost.Config, etc).
OBS: Essa configuração é valida para WebApp, ApiApp, e todas a versões do IIS a partir do 7.
Nosso cenário de implementação é um blog em wordpress rodando em um WebApp no Microsoft Azure, a partir do portal do Microsoft Azure navegue até o WebApp e clique em App Service Editor em seguida Go.
Selecione o arquivo web.config, no painel a direita faremos as alterações necessárias para a implementação do HSTS. Detalhe importante, cuidado ao fazer qualquer alteração em ambiente produtivo, pois qualquer alteração é salva automaticamente, e se houver alguma erro na configuração a aplicação pode ficar indisponível.
A configuração que precisamos acrescentar no web.config tem que ficar na estrutura de system.Webserver.
<httpProtocol>
<customHeaders>
<add name=”Strict-Transport-Security” value=”max-age=31536000″/>
</customHeaders>
</httpProtocol>
Abaixo capturei duas imagens do cabeçalho de uma requisição sem HSTS e depois com HSTS
Antes da implementação
Após implementação
Existe uma outra forma de configurar o HSTS, através do URL Rewrite, particularmente eu prefiro dessa forma, porém é um tema para o próximo artigo!
Até a próxima.
Comments