Vous trouverez ici quelques conseils afin de renforcer un peu, beaucoup… la sécurité d’un site WordPress. Cette liste n’étant malheureusement pas exhaustive je vous laisse le soin de vos remarques et commentaire.
Je vous passe les recommandations d’usage, si vous touchez a des fichiers système, faites tout de même attention de 1 savoir à minima ce que vous faites et 2 pourvoir restaurer en cas de plantage.
1. DÉSACTIVATION DE L’ÉDITEUR DE FICHIERS
Modifications à apporter à votre wp-config.php
define('DISALLOW_FILE_EDIT', true);
Pourquoi c’est crucial :
- Désactive l’éditeur de thème/plugin dans l’admin WordPress
- Empêche l’injection de code malveillant via l’interface
- Bloque « Apparence > Éditeur de thème » et « Extensions > Éditeur »
Impact :
Plus de modification de fichiers PHP via l’admin
Attaquant ne peut plus injecter de backdoor facilement
Inconvénients : plus d’édition via l’interface (utiliser FTP/SSH)
2. LIMITATION DES RÉVISIONS
define('WP_POST_REVISIONS', 3);
// Ou pour désactiver complètement :
define('WP_POST_REVISIONS', false);
Pourquoi l’optimiser :
- Performance : Évite l’accumulation de révisions infinies
- Espace disque : Réduit la taille de la base de données
- Sécurité : Moins de contenu sensible stocké
Options disponibles :
define('WP_POST_REVISIONS', 3); // Maximum 3 révisions
define('WP_POST_REVISIONS', true); // Révisions illimitées (défaut)
define('WP_POST_REVISIONS', false); // Aucune révision
3. GESTION DES MISES À JOUR
On ne le répètera jamais assez, pas de mises à jours automatiques sur un site WordPress, c’est le meilleur moyen de retrouver votre site en panne à un moment que vous ne maitrisez pas. Si vous le plantez en faisant vous même la mise à jour vous savez au moins le pourquoi et le restaurer rapidement.
// Désactiver toutes les MAJ automatiques
define('AUTOMATIC_UPDATER_DISABLED', true);
// OU configuration granulaire (recommandée) :
define('WP_AUTO_UPDATE_CORE', true); // MAJ sécurité WP uniquement
define('AUTO_UPDATE_PLUGIN', false); // Pas de MAJ auto plugins
define('AUTO_UPDATE_THEME', false); // Pas de MAJ auto thèmes
Stratégies recommandées :
Option 1 : Contrôle total (sites critiques)
define('AUTOMATIC_UPDATER_DISABLED', true);
// Toutes les MAJ manuelles après test
Option 2 : Équilibrée (recommandée)
define('WP_AUTO_UPDATE_CORE', 'minor'); // Seulement correctifs sécurité
define('AUTO_UPDATE_PLUGIN', false); // Plugins en manuel
define('AUTO_UPDATE_THEME', false); // Thèmes en manuel
Option 3 : Automatisée (sites simples)
// Laisser les valeurs par défaut WordPress // MAJ automatiques pour sécurité uniquement
4. CLÉS DE SÉCURITÉ COMPLÈTES
Les clés de sécurité
/**
* Clés de sécurité WordPress - À RÉGÉNÉRER RÉGULIÈREMENT
* Générer sur : https://api.wordpress.org/secret-key/1.1/salt/
*/
define('AUTH_KEY', 'mettez-votre-clé-unique-ici');
define('SECURE_AUTH_KEY', 'mettez-votre-clé-unique-ici');
define('LOGGED_IN_KEY', 'mettez-votre-clé-unique-ici');
define('NONCE_KEY', 'mettez-votre-clé-unique-ici');
define('AUTH_SALT', 'mettez-votre-clé-unique-ici');
define('SECURE_AUTH_SALT', 'mettez-votre-clé-unique-ici');
define('LOGGED_IN_SALT', 'mettez-votre-clé-unique-ici');
define('NONCE_SALT', 'mettez-votre-clé-unique-ici');
Exemple de clés réelles (générées) :
define('AUTH_KEY', '#*4vG$2kL9@mP7xQ!zR8sT3uW6yE5rF1nH4jK8lM2pN9');
define('SECURE_AUTH_KEY', 'xY7zB@4cF$9gJ2kL5nP8sV1wE4rT7uI0oA3dG6jM9qN2');
define('LOGGED_IN_KEY', 'mN8bV5cX2zA1sD4fG7jK0lQ3wE6rT9yU2iO5pS8vB1nM');
define('NONCE_KEY', 'qR4tY7uI0pA3sD6fG9jL2nQ5wE8rT1yU4iO7pS0vC3xZ');
define('AUTH_SALT', '9jL2nQ5wE8rT1yU4iO7pS0vC3xZ6aB9eH2kN5qT8wR1u');
define('SECURE_AUTH_SALT', '2kN5qT8wR1uY4iL7pS0vC3xZ6aB9eH2jM5nQ8rT1yU4o');
define('LOGGED_IN_SALT', '8rT1yU4oI7pS0vC3xZ6aB9eH2jM5nQ2kL9pS2wV5cX8z');
define('NONCE_SALT', '5nQ2kL9pS2wV5cX8zA1sD4fG7jM0qT3yU6iO9rE2vB5n');
À quelle fréquence les changer ?
- Après incident de sécurité : Immédiatement
- Maintenance préventive : Tous les 6 mois
- Changement d’équipe : Systématiquement
- Sites sensibles : Tous les 3 mois