vendredi 25 septembre 2026

À propos

Contact

Sécurité

Durcir wp-config.php : les réglages qui protègent vraiment votre site

Clés secrètes, permissions de fichiers, mode debug désactivé en production : voici comment transformer wp-config.php en première ligne de défense de votre site.

Par Clément Hadrot • 11 février 2020 • 5 min de lecture • Aucun commentaire
Durcir wp-config.php : les réglages qui protègent vraiment votre site

Le fichier wp-config.php est le premier fichier que je consulte quand un client me confie un site WordPress existant. C’est là que se joue une grande partie de la sécurité de base : connexion à la base de données, clés de chiffrement des cookies, et une poignée de constantes qui changent radicalement la surface d’attaque du site. Pourtant, la plupart des installations gardent la configuration par défaut, celle générée automatiquement par l’assistant d’installation.

Ce n’est pas une fatalité. En quelques minutes, il est possible de durcir ce fichier sans toucher au thème ni aux extensions. Voici les réglages que j’applique systématiquement sur chaque nouveau projet, et pourquoi chacun compte.

Régénérer les clés secrètes et les sels

WordPress utilise huit constantes pour signer et chiffrer les cookies d’authentification : AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY et leurs équivalents _SALT. Elles servent à garantir qu’un cookie de session ne peut pas être forgé par un tiers, même s’il devine ou vole des informations sur l’utilisateur.

Le générateur officiel à l’adresse api.wordpress.org/secret-key/1.1/salt/ produit un jeu de clés aléatoires prêtes à coller dans wp-config.php. Je recommande de les régénérer dans ces cas précis :

  • À l’installation initiale, sans exception ;
  • Après un incident de sécurité suspecté, même mineur ;
  • Quand un collaborateur qui avait accès au fichier quitte le projet ;
  • Une fois par an sur les sites sensibles, par précaution.

Régénérer les clés invalide toutes les sessions actives : tous les utilisateurs devront se reconnecter. C’est un effet secondaire acceptable, surtout comparé au bénéfice.

Désactiver WP_DEBUG et sécuriser les erreurs

La constante WP_DEBUG est indispensable en développement, mais catastrophique en production si elle reste active telle quelle : les messages d’erreur PHP peuvent révéler des chemins serveur, des noms de fonctions internes, voire des fragments de requêtes SQL. Sur un site en ligne, la configuration recommandée est la suivante :

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );

Si vous avez besoin de journaliser des erreurs sur un environnement de production pour diagnostiquer un problème ponctuel, activez WP_DEBUG_LOG seul, avec WP_DEBUG_DISPLAY à false, le temps du diagnostic, puis revenez immédiatement à la configuration stricte.

L'essentiel à retenir : Régénérer les clés AUTH_KEY et SALT dès l'installation ; Ne jamais laisser WP_DEBUG actif en production ; Déplacer wp-config.php au-dessus de la racine web

Forcer SSL sur l’administration

Si votre certificat SSL est en place (et il doit l’être), la constante FORCE_SSL_ADMIN impose que toute connexion à l’administration et tout envoi d’identifiants transitent en HTTPS :

define( 'FORCE_SSL_ADMIN', true );

Cette ligne empêche qu’un identifiant ou un cookie de session parte en clair sur le réseau, un scénario particulièrement dangereux sur un Wi-Fi public. C’est un réglage qui ne casse jamais rien tant que le certificat est valide, donc il n’y a aucune raison de s’en priver.

Permissions de fichiers : 644 et 755, pas plus

Les permissions Unix mal réglées sont une porte d’entrée classique. La règle que j’applique sur tous les serveurs que j’administre :

ÉlémentPermission recommandéeCommande
Dossiers755find . -type d -exec chmod 755 {} \;
Fichiers644find . -type f -exec chmod 644 {} \;
wp-config.php640 ou 600chmod 600 wp-config.php

Le fichier wp-config.php mérite un traitement à part, car il contient les identifiants de la base de données en clair. Sur un hébergement mutualisé où le processus PHP tourne avec l’utilisateur du compte, 600 (lecture/écriture pour le seul propriétaire) est souvent le réglage le plus strict praticable.

Déplacer wp-config.php hors de la racine web

Peu de personnes le savent, mais WordPress cherche automatiquement wp-config.php un niveau au-dessus de la racine de l’installation si le fichier n’est pas trouvé à sa place habituelle. Cela permet de le sortir complètement du dossier servi publiquement par le serveur web :

  • Placez le fichier dans le dossier parent de public_html (ou équivalent selon votre hébergeur) ;
  • WordPress le détectera automatiquement, aucune configuration supplémentaire n’est nécessaire ;
  • Même en cas de mauvaise configuration du serveur web exposant les fichiers PHP en clair, ce fichier reste hors d’atteinte.

Sur les hébergements mutualisés où je n’ai pas la main sur la configuration Apache ou Nginx, déplacer wp-config.php hors de la racine web est souvent le seul filet de sécurité fiable contre une mauvaise manipulation serveur. Je le fais systématiquement, même quand tout semble déjà bien configuré.

En résumé

Aucun de ces réglages ne demande d’extension supplémentaire ni de compétence exotique : régénérer les clés secrètes, désactiver l’affichage des erreurs, forcer le SSL sur l’admin, corriger les permissions et éventuellement déplacer le fichier hors de la racine web. Pris ensemble, ils réduisent nettement la surface d’attaque d’un site WordPress, pour un coût de mise en œuvre quasi nul. C’est exactement le genre de mesures que je recommande de vérifier avant même de penser à installer une extension de sécurité.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi