WordPress est la cible favorite des attaques automatisees, surtout via des plugins obsoletes, des mots de passe faibles ou des services exposes par defaut. Voici une checklist claire pour durcir un site rapidement, avec des exemples concrets (plugins et .htaccess).
1) Changer le lien de connexion admin
L'URL par defaut (/wp-admin et /wp-login.php) est scannee en permanence. Changer ce point d'entree reduit le bruit et les tentatives de brute force.
Plugins utiles :
- WPS Hide Login (simple et leger)
- iThemes Security (option equivalente, plus complet)
Astuce : evite d'utiliser un chemin obvious type /login ou /admin.
2) Desactiver XML-RPC si inutile
XML-RPC sert a certaines integrations (appli mobile, Jetpack, etc.). Si tu n'en as pas besoin, coupe-le pour eliminer une surface d'attaque frequente.
Via .htaccess (Apache 2.4) :
<Files xmlrpc.php>
Require all denied
</Files>
Plugins utiles :
- Disable XML-RPC
- iThemes Security (option integree)
3) Mettre a jour WordPress, themes et plugins
C'est la source principale de compromission. Active les updates automatiques pour les correctifs de securite, ou programme une revue hebdo.
- Core WordPress : auto-update de securite
- Plugins/themes : supprime ceux qui ne sont plus maintenus
- Evite les plugins "NULLED" ou non officiels
4) Utiliser une version PHP recente
PHP 7.x est EOL. Vise une version maintenue (8.1+), idealement 8.2 ou 8.3 si tes plugins sont compatibles.
- Performance meilleure
- Correctifs de securite recents
5) Desactiver le listing des fichiers dans uploads
Le listing de dossier permet de decouvrir des fichiers sensibles (backups, exports, etc.). Ajoute ceci dans wp-content/uploads/.htaccess :
Options -Indexes
Ou globalement dans le .htaccess racine :
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
6) Limiter les tentatives de connexion
Bloque les attaques de brute force et credential stuffing.
Plugins utiles :
- Limit Login Attempts Reloaded
- Wordfence (rate limiting + firewall)
7) Activer une authentification forte
- Mots de passe longs + uniques (gestionnaire recommande)
- 2FA pour les comptes admin
Plugins utiles :
- WP 2FA
- Wordfence Login Security
8) Verrouiller l'edition de fichiers depuis l'admin
Bloque l'edition de code via l'interface (vector d'injection frequente en cas de compte compromis).
Dans wp-config.php :
define('DISALLOW_FILE_EDIT', true);
9) Droits fichiers et utilisateurs
- Ne donne pas le role Admin a tout le monde
- Utilise le principe du moindre privilege
- Droits fichiers standards :
- Dossiers :
755 - Fichiers :
644 wp-config.php:600ou640
- Dossiers :
10) HTTPS, headers de securite, WAF
- Force HTTPS (certificat TLS valide)
- Ajoute des headers de securite (HSTS, X-Frame-Options, X-Content-Type-Options)
- Utilise un WAF (Cloudflare, Sucuri, Wordfence)
Exemple minimal (Apache) :
<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
11) Sauvegardes et monitoring
- Sauvegardes regulieres + stockage externe
- Monitoring des logs et alertes de connexion suspecte
Plugins utiles :
- UpdraftPlus
- BlogVault
12) Bonus : proteger wp-login et wp-admin par IP
Si tu as un backoffice utilise depuis des IP fixes, tu peux restreindre l'acces :
<IfModule mod_authz_core.c>
<LocationMatch "^/(wp-login.php|wp-admin)">
Require ip 203.0.113.10
Require ip 198.51.100.0/24
</LocationMatch>
</IfModule>
En pratique, les 3 actions qui reduisent le plus le risque sont : mises a jour, comptes solides + 2FA, reduction de surface d'attaque (XML-RPC, login, listing). Combine-les avec des backups fiables pour une defense efficace.