1 votes

Nginx autorise les fichiers PHP pour certaines IP seulement.

J'utilise l'instruction suivante pour bloquer l'exécution de plusieurs types de fichiers

location ~* (\.php$|\.htaccess$|\.git) {
    deny all;
}

Comment puis-je autoriser l'exécution d'un seul script pour une adresse IP spécifique ?

J'ai essayé ce qui suit pour permettre l'exécution d'un script PHP, mais cela ne fonctionne pas

location ~ ^adminer.php {                                        
    fastcgi_pass   php-fpm:9000;  
    fastcgi_index  adminer.php;              
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;          
    fastcgi_param  PHP_VALUE        "error_log=/var/log/nginx/application_php_errors.log";
    include  fastcgi_params;                       
}

4voto

Federico Galli Points 908

Pour bloquer un utilisateur sur la base de son adresse IP, utilisez les instructions "allow - deny" (autoriser - refuser) comme décrit sur le site de la Commission européenne. ngx_http_access_module Ensuite, vous pourrez ajouter une règle "attrape-tout", si vous en avez besoin.

location ~* phpinfo.php {                                        
    fastcgi_pass   127.0.0.1:9000;  
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;          
    include  fastcgi_params;                       
    allow your.exact.i.p/32;
    deny all;
}

location ~* \.(?:php|htaccess|git)$ {
    deny all;
}

1voto

Tero Kilkanen Points 32968

Utilisez location = /path/to/adminer.php comme bloc de localisation. Le site = La correspondance est la plus haute priorité dans nginx, et d'autres location Les blocs ne sont plus appariés après cela.

Dans votre configuration, il s'agit très probablement de l'ordre de vos location des blocs et des correspondances superposées qui l'empêchent de fonctionner.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X