Como colocar na whitelist cabeçalhos na filtragem do IIS?

1

Estamos procurando implementar o CloudFlare como um WAF para o nosso site. Um dos requisitos é que restringimos o acesso ao site fora da América do Norte. Felizmente, o CloudFlare suporta o GeoLocation e coloca os pedidos no servidor de origem com um cabeçalho de localização.

Agora, no entanto, preciso descobrir como colocar países na lista de permissões. Idealmente, eu gostaria de especificar CA e US ou quaisquer valores permitidos, e rejeitar todo o resto, mas no IIS, parece que apenas suporta blacklists.

Existe uma maneira de fazer isso apenas no IIS, ou alguém sabe de um terceiro módulo que faz isso?

    
por Mike Caron 20.10.2016 / 18:02

1 resposta

1

Você pode usar o Módulo de reconfiguração do IIS .

Use uma regra para corresponder a todos os URLs e use uma condição para verificar o cabeçalho HTTP injetado pelo CloudFlare, verificar o valor do país e rejeitar todas as solicitações que não sejam dos EUA ou do Canadá.

Uma regra de amostra seria algo assim:

<rewrite>
    <rules>
        <rule name="RequestBlockingRule1" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_CF_IPCOUNTRY}" pattern="^CA|US$" negate="true" />
            </conditions>
            <action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="Using this site from your location is not supported." />
        </rule>
    </rules>
</rewrite>

CF-IPCountry seria o nome de o cabeçalho injetado pela CloudFlare.

    
por 20.10.2016 / 20:08