Contexte
Une PME en Suisse romande a constaté des redirections aléatoires vers des sites de spam, principalement sur mobile et via certains navigateurs. Le site WordPress restait parfois normal pour l’administrateur connecté, ce qui compliquait le diagnostic. L’incident impactait la confiance et le référencement, car les moteurs détectent ce type de comportement comme du spam.
Symptômes observés
- Redirections intermittentes vers des pages douteuses (souvent via JavaScript).
- Comportement plus fréquent en navigation privée ou depuis un appareil mobile.
- Pic d’erreurs et pages inconnues dans Search Console.
- Parfois des fichiers modifiés récemment, sans action interne identifiée.
Objectifs du dépannage
- Stopper immédiatement les redirections et remettre le site en état sain.
- Identifier la porte d’entrée (plugin vulnérable, mot de passe, FTP, thème).
- Nettoyer correctement: fichiers, base de données, utilisateurs, tâches planifiées.
- Durcir la sécurité: mises à jour, WAF, permissions, sauvegardes, monitoring.
- Assainir le SEO: vérifications Search Console et demandes de réexamen si nécessaire.
Diagnostic (approche)
- Inspection des fichiers modifiés récemment (
wp-contenten priorité). - Contrôle de
.htaccess(Apache) ou des règles Nginx, et des redirections injectées. - Analyse de la base de données: contenus injectés (posts, options), scripts dans widgets.
- Contrôle des comptes admin et des clés (WordPress, FTP, base de données).
- Scan via outils de sécurité (Wordfence, Sucuri) et vérification manuelle.
Cause identifiée
Un plugin obsolète exposait une faille permettant l’injection d’un script de redirection dans un fichier situé sous wp-content/uploads, puis référencé discrètement. En parallèle, une règle de redirection avait été ajoutée dans .htaccess pour certains user agents.
Nettoyage et correctifs appliqués
1) Mesures d’urgence
- Blocage temporaire des écritures suspectes et mise en maintenance contrôlée si nécessaire.
- Purge cache et désactivation des redirections côté CDN (si actif).
2) Nettoyage fichiers
- Suppression des fichiers injectés (souvent déguisés dans
uploads). - Réinstallation des fichiers core WordPress depuis une source officielle.
- Contrôle des thèmes et plugins, suppression de ceux non maintenus.
3) Nettoyage base de données
- Recherche de scripts dans
wp_options(widgets, code injecté, autoload). - Contrôle des contenus: pages, articles, shortcodes et champs personnalisés.
- Nettoyage des tâches planifiées (wp-cron) qui réinjectent du contenu.
4) Durcissement sécurité
- Rotation des mots de passe (admin, FTP/SFTP, DB) et clés secrètes WordPress.
- Règles WAF (Cloudflare) et limitation de tentatives sur
wp-login.php. - Permissions fichiers corrigées, désactivation de l’édition de fichiers dans l’admin.
- Sauvegardes et monitoring activés, avec alertes.
5) SEO et confiance
- Vérification Search Console: pages infectées, actions manuelles, sitemaps.
- Suppression des URLs spam (si générées), puis demande de validation après nettoyage.
Exemple technique : vérifier l’intégrité du core WordPress
Permet de repérer des fichiers core modifiés.
wp core verify-checksums
Exemple technique : désactiver l’éditeur de fichiers WordPress
Réduit la surface d’attaque en cas de compte compromis.
define('DISALLOW_FILE_EDIT', true);
Exemple technique : recherche d’injection dans la base (WP-CLI)
Exemples de recherche. Les patterns doivent être adaptés au cas.
wp db query "SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';"
wp db query "SELECT ID FROM wp_posts WHERE post_content LIKE '%document.location%';"
Exemple technique : permissions recommandées (repère)
À adapter selon hébergement, propriétaire et SFTP.
Dossiers: 755
Fichiers: 644
wp-config.php: 640 (ou 600 selon contexte)
Résultats
- Redirections stoppées, site sain en navigation privée et sur mobile.
- Plugins et fichiers nettoyés, portes d’entrée supprimées.
- Sécurité renforcée: WAF, permissions, rotation des accès, monitoring.
- Contrôles SEO effectués, et suivi Search Console remis au propre.
Prévention mise en place
- Mises à jour mensuelles contrôlées, avec tests rapides post-déploiement.
- Politique plugins: limiter, remplacer les non maintenus, surveiller les vulnérabilités.
- Backups vérifiés et restauration testée (au moins ponctuellement).
- Alertes uptime + alertes sécurité (changement fichiers, tentatives login).
Points clés à retenir
- Les redirections spam sont souvent furtives: tester en privé et sur mobile accélère le diagnostic.
- Un nettoyage efficace inclut fichiers + base + accès, sinon la réinfection est probable.
- Le durcissement (WAF, permissions, routine) est la vraie solution long terme.