Este uso do nginx if-directive é seguro?

1

De acordo com a própria documentação, if is Evil . Eles deram vários exemplos de que certas configurações não funcionarão se uma diretiva if for usada. Eles não entram em detalhes sobre o porquê de se comportarem de maneira diferente do que o usuário pode esperar, ou dar exemplos sobre como reescrever essas instâncias.

O que eles fazem, no entanto, é vincular a este artigo , o que dá uma explicação rudimentar de que um if -directive dentro de um location -directive cria outro "pseudo- location ", que ignora os outros location blocos.

No entanto, os exemplos parecem contra-intuitivos para mim, mesmo com a explicação. Como tal, queria saber se a minha configuração específica é segura e, em caso negativo, como poderia ser melhor reescrita. Eu fiz meus próprios testes, claro, e parece se comportar corretamente. O exemplo a seguir é apenas o fragement relevante do arquivo de configuração:

ssl_client_verify optional;

location /public {
    try_files $uri $uri/ =404;
}

location / {
    if ($ssl_client_verify != SUCCESS)
    {
        return 403;
    }
    try_files $uri $uri/ =404;
}

Minha principal preocupação de segurança é evitar a exposição de qualquer conteúdo que não esteja em /public a qualquer pessoa que não tenha um certificado válido.

    
por David Stockinger 11.06.2018 / 21:08

0 respostas

Tags