Cybersécurité

Sécurité des sites WordPress : 15 mesures essentielles

12 min de lecture

Ce que vous saurez faire à la fin

  1. Sécuriser un site WordPress en 15 actions concrètes.
  2. Détecter une compromission et y répondre rapidement.
  3. Configurer Wordfence ou Sucuri.
  4. Sauvegarder et restaurer correctement.
  5. Maintenir la sécurité dans le temps.

Durée : 1 jour pour les 15 actions de base. Pré-requis : site WordPress accessible, accès admin WP + FTP/SFTP, accès cPanel ou hébergeur, plugin de sécurité (Wordfence Free / Pro 99 USD/an, Sucuri Pro 200 USD/an), gestionnaire de mots de passe.

Action 1 — Changer le login admin

90 % des attaques visent l'utilisateur "admin".

Solution :
1. Créer nouveau utilisateur Administrateur (ex: "admin_diallo_2026")
2. Mot de passe 16+ caractères via Bitwarden
3. Email pro
4. Tester connexion avec nouveau compte
5. Supprimer ou rétrograder l'ancien "admin"
6. Si suppression : transférer les contenus à votre nouveau compte

Plugin alternatif : "WPS Hide Login" pour changer URL /wp-admin
en /votre-mot-secret/

Action 2 — Activer la double authentification

Plugin « Two Factor Authentication » ou « Wordfence Login Security » :

  • Activez sur tous les comptes Administrateur et Editor
  • App preferred : Microsoft Authenticator, Google Authenticator, Authy
  • SMS OK en backup mais évitable (SIM swap)
  • Codes de récupération imprimés et stockés en sécurité
  • Forcer activation pour tout nouveau compte sensible

Action 3 — Limiter les tentatives de connexion

Plugin "Limit Login Attempts Reloaded" ou Wordfence :

Configuration :
- Tentatives max : 5
- Lockout après dépassement : 30 min
- Lockout permanent après 4 lockouts en 24h
- Whitelist : votre IP fixe (si applicable)
- Notifier admin par email à chaque lockout
- Block des IPs utilisant des bots de bruteforce connus

Bloque 99 % des attaques bruteforce automatisées.

Action 4 — Sécuriser wp-config.php

// Ajoutez en haut de wp-config.php

// Bloquer édition fichiers depuis admin (sécurité majeure)
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true); // bloque install plugins/themes depuis admin

// Forcer HTTPS dans admin
define('FORCE_SSL_ADMIN', true);

// Désactiver la console debug en production
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

// Limite révisions (réduit DB)
define('WP_POST_REVISIONS', 3);

// Auto-save moins fréquent
define('AUTOSAVE_INTERVAL', 300);

// Salts uniques (regenerate sur api.wordpress.org/secret-key/1.1/salt/)
define('AUTH_KEY', '...');
define('SECURE_AUTH_KEY', '...');
// etc.

Action 5 — Désactiver XML-RPC

XML-RPC est un vecteur d’attaque massif, rarement utilisé en 2026 (informations vérifiées en avril 2026, susceptibles d’évoluer).

Plugin "Disable XML-RPC" ou ajouter dans .htaccess :

<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

Si vous utilisez l'app WordPress mobile : whitelist votre IP.

Action 6 — Mettre à jour WordPress, plugins, thèmes

50 % des hacks viennent d’une vulnérabilité plugin non patchée.

  • WordPress core : auto-update mineurs activés (par défaut)
  • Mises à jour majeures : tester sur staging avant prod
  • Plugins : update sous 7 jours après release
  • Thèmes : update si vous utilisez un parent (sinon child theme protège)
  • Audit mensuel : supprimer plugins / thèmes non utilisés
  • Vérifier compatibilité PHP version

Action 7 — Installer un plugin de sécurité

Plugin Tarif Forces
Wordfence Free 0 Firewall, scan malware
Wordfence Premium 99 USD/an Real-time updates, WAF cloud
Sucuri 200-500 USD/an WAF cloud, monitoring 24/7
iThemes Security 80 USD/an + outils config
All In One WP Security Gratuit Bonne base

Recommandation : Wordfence Premium pour PME, Sucuri pour sites haute valeur.

Action 8 — Configurer Wordfence proprement

Wordfence Settings :

Firewall :
- Activé en mode "Extended Protection" (PHP-level)
- Block fake Googlebot
- Block IPs failing brute force

Scan :
- Toutes les 12h
- Alertes email si malware détecté

Login Security :
- 2FA obligatoire admins
- Captcha sur formulaire login
- Block forced password reset

Tools :
- Block list : pays bloqués (selon vous)
- Whitelist : votre IP fixe

Action 9 — Sécuriser les fichiers et permissions

# Permissions correctes via SSH ou FileZilla

# Dossiers : 755
find /chemin/wordpress -type d -exec chmod 755 {} ;

# Fichiers : 644
find /chemin/wordpress -type f -exec chmod 644 {} ;

# wp-config.php : 600 (max sécurité)
chmod 600 wp-config.php

# .htaccess : 644
chmod 644 .htaccess

Action 10 — Sauvegarder automatiquement (3-2-1)

Plugin "UpdraftPlus" :

Configuration :
- Fichiers : sauvegarde quotidienne
- Database : sauvegarde quotidienne
- Stockage distant : Google Drive ou Dropbox (gratuit 15 Go)
- Rétention : 14 dernières
- Notification email si erreur

Test restauration mensuelle obligatoire :
- Restaurer 1 fichier au hasard
- Restaurer DB sur staging
- Vérifier intégrité

Sans test = sauvegarde fictive.

Action 11 — Sécuriser .htaccess

# Ajouter dans .htaccess racine

# Bloquer accès wp-config.php
<Files wp-config.php>
Order Deny,Allow
Deny from all
</Files>

# Bloquer accès .htaccess
<Files .htaccess>
Order Deny,Allow
Deny from all
</Files>

# Bloquer execution PHP dans uploads
<Directory "/wp-content/uploads/">
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
</Directory>

# Désactiver browsing répertoires
Options -Indexes

# Bloquer auteur enumeration
RewriteEngine On
RewriteCond %{QUERY_STRING} author=([0-9]+)
RewriteRule ^(.*)$ /? [L,R=301]

Action 12 — Activer HTTPS / SSL forcé

  • Certificat Let’s Encrypt gratuit via cPanel ou Cloudflare
  • Plugin « Really Simple SSL » pour redirection HTTP → HTTPS
  • Vérifier mixed content (images HTTP sur page HTTPS)
  • HSTS header (force HTTPS pour 6 mois minimum)
  • Test : ssllabs.com/ssltest, score A+ visé

Action 13 — Activer Cloudflare en frontal (gratuit)

Bénéfices sécurité :

  • WAF (Web Application Firewall) basique gratuit
  • Anti-DDoS layer 7 inclus
  • Rate limiting
  • Bot fight mode
  • Bloquer pays / IPs / user-agents suspects
  • SSL gratuit Universal
  • CDN bonus pour performance

Action 14 — Audit régulier (mensuel)

Checklist mensuelle :

✓ WordPress + plugins + thèmes à jour
✓ Comptes utilisateurs : actifs et permissions correctes
✓ Plugins / thèmes inactifs : supprimer
✓ Logs Wordfence : pas d'attaque non bloquée
✓ Sauvegardes : présentes et testées
✓ Mots de passe faibles : 0
✓ Comptes admin : minimum (cible 2)
✓ Scanner sécurité : 0 alerte critique
✓ Performance : pas de plugin malicieux ralentissant
✓ Audit code : si changement custom récent

Action 15 — Préparer la réponse à incident

Si site hacké :

T+0 : Détection (Wordfence alert, message contact, Google flag)

T+15 min :
- Backup IMMÉDIATE de l'état actuel (forensique)
- Désactiver site (plugin "Maintenance Mode")
- Isoler : changer mot de passe FTP, base, admin

T+1h :
- Identifier source : Wordfence scan, vérifier fichiers modifiés
- Vérifier accès non-autorisés (logs Apache, plugins)
- Lister malwares trouvés

T+2h :
- Restaurer depuis backup propre (avant compromission)
- Si pas de backup propre : nettoyer manuellement (long)
- Mettre à jour TOUT (WP, plugins, thèmes)

T+24h :
- Tests fonctionnels complets
- Soumettre re-review à Google Search Console si flag
- Communiquer aux utilisateurs si données impactées (CDP)
- Post-mortem : comment éviter

Erreurs fatales en sécurité WordPress

  • Login « admin » : 50 % des attaques visent ce login.
  • Mot de passe faible : brute force réussit en heures.
  • Plugins obsolètes : 1 vulnérabilité = backdoor permanente.
  • Pas de backup : hack = perte totale possible.
  • FTP au lieu de SFTP : mot de passe en clair sur le réseau.

Checklist sécurité WordPress

✓ Login admin custom (pas "admin")
✓ MFA sur tous comptes admin
✓ Limite tentatives connexion
✓ wp-config.php sécurisé
✓ XML-RPC désactivé
✓ WordPress + plugins à jour
✓ Plugin sécurité installé (Wordfence)
✓ Permissions fichiers correctes (755/644)
✓ Sauvegardes 3-2-1 quotidiennes
✓ .htaccess durci
✓ HTTPS forcé partout
✓ Cloudflare en frontal
✓ Audit mensuel
✓ Procédure réponse incident documentée

Pour appliquer ce tutoriel sur un vrai serveur

Hostinger reste l’option la plus simple pour démarrer. Lien partenaire — votre achat soutient le blog sans surcoût.

Réserver un VPS Hostinger →

Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.

Le paysage des attaques WordPress en 2026

WordPress motorise environ 43 pour cent du web mondial selon W3Techs, ce qui en fait la cible numero un des attaquants automatises. La majorite des compromissions ne vient pas de zero-days exotiques mais de configurations par defaut, de plugins obsoletes, ou de mots de passe faibles. Le rapport Sucuri 2024 montrait que 96 pour cent des sites WordPress compromis avaient au moins un composant non a jour au moment de l attaque, et que 86 pour cent des incidents impliquaient un plugin tiers.

Trois familles d attaques dominent. Premiere : les attaques par force brute sur wp-login.php et XML-RPC, automatisees par botnets pour tester des paires login/mot de passe a la chaine. Deuxieme : l exploitation de vulnerabilites connues dans des plugins ou themes non a jour (les CVE WordPress sortent chaque semaine sur Patchstack et WPScan). Troisieme : les injections via formulaires ou uploads non controles (LFI, RCE, XSS, SQL injection).

Les contre-mesures prioritaires

Au-dela des 15 mesures classiques, quelques pratiques modernes font une difference majeure.

Mot de passe administrateur de 24 caracteres minimum. La force brute en 2026 teste des milliards de combinaisons par jour. Un mot de passe de 16 caracteres aleatoires reste cassable en quelques semaines. A 24 caracteres, le temps de cassage depasse 1 milliard d annees, meme avec des GPU recents. Generer via un gestionnaire (Bitwarden, 1Password) et ne jamais reutiliser.

2FA obligatoire pour les administrateurs. Le plugin WP 2FA (Wordfence) ou Two Factor Authentication ajoute une seconde verification (TOTP ou WebAuthn) au login. C est la mesure unique qui bloque 99 pour cent des compromissions par credentials selon Microsoft.

Renommer wp-login.php. Le plugin WPS Hide Login change l URL de connexion en quelque chose comme /accesadmin-XK29/. Les bots qui ciblent /wp-login.php trouvent 404 et passent au site suivant. Reduit les attaques par brute force de 99 pour cent dans la pratique.

Limiter les tentatives de connexion. Le plugin Limit Login Attempts Reloaded ou Wordfence bloque l IP apres 3-5 echecs successifs. Combine avec WPS Hide Login, c est tres efficace contre les rares attaquants qui auraient trouve la nouvelle URL de login.

Desactiver XML-RPC s il n est pas utilise. XML-RPC sert essentiellement aux applications mobiles WordPress et a quelques integrations. Sur la plupart des sites, on peut le bloquer integralement via .htaccess (Deny from all sur xmlrpc.php) ou un plugin. Supprime un vecteur d attaque significatif.

Disable file editing dans l admin. Ajouter define( DISALLOW_FILE_EDIT , true); dans wp-config.php empeche un attaquant qui a compromis un compte admin de modifier directement des fichiers PHP. C est une ligne de defense supplementaire facile a appliquer.

WAF en amont du serveur. Cloudflare en plan gratuit bloque deja les patterns d attaque connus. Pour aller plus loin, Sucuri WAF (10 USD/mois) ou Cloudflare Pro (20 USD/mois) ajoutent des regles WordPress specifiques. Ces WAF en amont bloquent les attaques avant qu elles atteignent le serveur.

Mises a jour automatiques pour core et plugins. Activer les auto-updates dans Reglages WordPress (en place depuis WP 5.5). Pour les sites a fort trafic ou personnalises, mettre en place un environnement staging et un workflow de tests avant deploiement en prod. Le delai entre divulgation d une CVE et exploitation massive est passe sous 24 heures en 2024 — attendre une semaine pour patcher revient a etre compromis.

Sauvegardes 3-2-1 automatiques. Trois copies, deux supports differents, une hors site. Le plugin UpdraftPlus ou BackWPup automatise vers Google Drive, S3, OneDrive. Tester la restauration tous les trimestres — une sauvegarde jamais restauree n existe pas.

Detection : voir l attaque avant qu il soit trop tard

La prevention echoue parfois. La detection rapide limite les degats.

Wordfence Scan (plan gratuit) compare les fichiers du core, des themes et des plugins a leurs versions officielles et alerte sur tout fichier modifie ou ajoute. C est l outil de detection le plus efficace en gratuit.

Surveillance des nouveaux utilisateurs administrateurs. Un attaquant qui compromet un site cree typiquement un compte admin dormant pour revenir plus tard. Configurer une alerte email a chaque creation de compte avec role manager ou administrator detecte cette technique.

Logs d acces analyses regulierement. Les logs nginx ou Apache montrent les patterns d attaque : nombreuses requetes 404 sur wp-login.php depuis une meme IP, requetes POST sur xmlrpc.php, scans de fichiers comme wp-config.php.bak. Un coup d oeil hebdomadaire suffit pour reperer l anormal.

Que faire si le site est deja compromis ?

Quatre etapes dans l ordre. (1) Mettre le site en maintenance et bloquer les acces publics. (2) Restaurer une sauvegarde anterieure a la compromission, en verifiant la date du premier signe d intrusion via les logs. (3) Si pas de sauvegarde saine, faire scanner par un service specialise (Sucuri, Patchstack) pour identifier et nettoyer les backdoors. (4) Apres remise en route, changer tous les mots de passe (admin, FTP, BDD, comptes utilisateurs), regenerer les cles de securite WordPress (wp-config.php), et auditer toutes les extensions installees.

FAQ

Faut-il acheter Wordfence Premium ou Sucuri ?
Pour un blog ou site vitrine, la version gratuite de Wordfence couvre les besoins. Pour un site e-commerce ou un site contenant des donnees sensibles, le plan Premium de Wordfence (120 USD/an) ou Sucuri (200 USD/an) ajoute des protections WAF en temps reel et un support en cas d incident, ce qui se rentabilise au premier incident evite.

Combien de temps faut-il pour qu un nouveau site WordPress soit attaque ?
Moins de 24 heures. Les bots scannent en permanence le Web a la recherche de nouvelles URL WordPress, et lancent immediatement des tentatives de connexion. La protection doit etre en place avant la mise en ligne, pas apres.

L hebergement gere (managed WordPress) protege-t-il ?
Kinsta, WP Engine, Hostinger Premium WordPress incluent des protections de base (WAF, scan, mises a jour automatiques) qui couvrent la majorite des attaques courantes. Cela ne dispense pas des bonnes pratiques au niveau application (mots de passe forts, 2FA, plugins a jour).

Mes mots de passe doivent-ils etre changes regulierement ?
Non, contrairement a la croyance ancienne. La rotation force amene les utilisateurs a creer des mots de passe trivialement derives (Password1, Password2). NIST SP 800-63B a desavoue cette pratique en 2017 et confirme en 2024. La nouvelle norme : un mot de passe long et unique par compte, change uniquement en cas de soupcon de compromission.

References

Partager