Segurança de Transporte Strict HTTP (HSTS), Módulo IIS do Azure e do HTTP Strict Transport Security

4

Pergunta: Como você instala e configura corretamente a Segurança de Transporte Rígida de HTTP (HSTS) em um site do Azure?

Aparentemente, para o IIS, o método a ser usado é instalar este módulo: link

O problema é que, de acordo com a documentação, você precisa instalar vários arquivos .dll em locais diferentes (HSTS-IIS-Module-2.0.0.msi). Infelizmente isso não parece possível em um ambiente de site do Azure (como instalar o módulo do IIS no site do Azure?)? O uso de uma máquina virtual provavelmente funcionaria, mas minha pergunta é direcionada a um site / webapp regular do Azure (Aplicativo ASP.NET MVC 5).

    
por PussInBoots 09.06.2015 / 11:40

1 resposta

4

ATUALIZAÇÃO:

Se você estiver executando o ASP.NET, você deseja instalar o NWebsec . Ele permitirá que você configure o HSTS, mas também a Política de segurança de conteúdo e outros cabeçalhos relacionados ao Projeto de cabeçalhos seguros OWASP .

Esta solução foi coberta por Scott Hanselman em seu blog (fonte na parte inferior da resposta).

Basicamente, o HSTS é apenas um cabeçalho HTTP. Mas você só quer enviá-lo quando estiver em HTTPS. Isso bloqueará seu site em HTTPS para o max-age especificado.

Veja o que deve estar no web.config de seu aplicativo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
                        redirectType="Permanent" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
                    <match serverVariable="RESPONSE_Strict_Transport_Security"
                        pattern=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
                    </conditions>
                    <action type="Rewrite" value="max-age=31536000" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

Fonte

    
por 27.01.2016 / 19:53