Bloquear arquivos php ocultos (ponto)

2

Eu quero bloquear o acesso a arquivos .dot ocultos, especificamente php arquivos no Nginx, mas não consigo encontrar uma solução. Os arquivos .ht estão ocultos por padrão, o que é especificado a seguir:

location ~ \.ht {
        deny all;
}

Eu escrevi essa regra para corresponder a todos os arquivos que começam com dot , mas não está funcionando:

location \.(.+\.*)(.*)\.(.+\.*)(.*)$ {
        deny all;
}

Aqui estão alguns exemplos de arquivos que devem ser ocultados

/.foo.php
/path/to/.foo.php

O que devo fazer?

    
por Farid Rn 23.04.2016 / 16:43

1 resposta

4

Você precisa analisar com cuidado a ordem dos blocos location . Esta localização:

location ~ /\. {
    deny all;
}

deve corresponder a qualquer URI com um elemento de caminho que comece com . .

No entanto, é preciso estar acima de qualquer outro bloco de localização de expressão regular. Além disso, qualquer bloco de localização de prefixo usando o modificador ^~ terá precedência.

Veja este documento para detalhes.

Note também: Os blocos de localização da sua pergunta estão errados. O primeiro também corresponderá a index.html e o segundo perderá o modificador ~ para uma localização regex.

    
por 23.04.2016 / 18:02

Tags