Skip to content

Limiter les risques sur Nginx : fichiers sensibles, uploads, méthodes HTTP

Brandon Visca
Published date:

Table des matières

Open Table des matières

Introduction

La sécurité d’un site web ne repose pas uniquement sur des headers ou un pare-feu. Elle commence aussi par des mesures préventives dans la configuration du serveur web.

Dans cet article, nous allons aborder 3 axes cruciaux pour protéger votre application via Nginx :

  1. L’interdiction d’accès aux fichiers sensibles (ex. : .env, .git, .htaccess)
  2. La désactivation de l’exécution PHP dans les répertoires d’upload
  3. La restriction des méthodes HTTP (seulement GET et POST autorisés)

Ces pratiques sont simples à mettre en place, mais trop souvent oubliées. Et pourtant, elles peuvent faire la différence entre un site sécurisé et un site compromis.


  1. Interdire l’accès aux fichiers sensibles

Certains fichiers générés par vos outils ou frameworks ne doivent jamais être accessibles via le navigateur :

Objectif : Empêcher qu’un utilisateur accède à ces fichiers avec une simple URL du type https://monsite.com/.env.

Configuration Nginx recommandée :

location ~ /\.(ht|git|env|svn|project|idea|DS_Store|vscode) {
    deny all;
    access_log off;
    log_not_found off;
}

location ~* ^/uploads/.*.php$ { deny all; }

Tu peux élargir à d’autres extensions dangereuses :

location ~* ^/uploads/.*\.(php|phar|phtml|pl|py|cgi)$ {
    deny all;
}

limit_except GET POST { deny all; }

Ce bloc :

Exemple concret :

location /api/ {
    limit_except GET POST {
        deny all;
    }

    proxy_pass http://backend-api;
}

curl -X DELETE https://monsite.com/

Si tu reçois une réponse 405 Not Allowed, c’est bon signe. Sinon… corrige vite !


Bonus : interdire les requêtes sur des chemins “pièges”

Certains bots scannent le web à la recherche de fichiers mal configurés. Tu peux les bloquer préventivement :

location ~* /(composer\.json|composer\.lock|package\.json|wp-config\.php|php\.ini)$ {
    deny all;
}
Previous
Comprendre les blocs location de Nginx et leur impact sur la sécurité
Next
Content-Security-Policy : Protéger votre site sans bloquer vos utilisateurs