Dans cet article, nous aborderons les types de piratages WordPress les plus courants, comment les identifier et les différentes méthodes pour les corriger. Si vous rencontrez un tel problème, nous vous recommandons vivement de contacter un développeur web professionnel pour obtenir de l'aide supplémentaire. Pour plus de conseils sur l'amélioration de la sécurité de votre compte d'hébergement, veuillez consulter ce guide.
IMPORTANT : Avant d'apporter toute modification, créez une sauvegarde complète de votre site web.
À NOTER : Pour réduire le risque de futurs piratages WordPress, analysez régulièrement votre compte d'hébergement avec un outil antivirus, supprimez tous les fichiers malveillants ou suspects et maintenez tous les plugins et thèmes de votre site à jour avec leurs dernières versions.
Bien que plusieurs problèmes différents puissent entraîner la disparition ou la modification des fichiers par défaut, la cause la plus fréquente est la présence de logiciels malveillants injectés dans votre installation WordPress. Heureusement, les outils antivirus sur nos serveurs Web et Hébergement peuvent automatiquement détecter et mettre en quarantaine les fichiers compromis.
Si vos fichiers WordPress principaux sont infectés, vous pouvez rencontrer des symptômes tels que :
Une page blanche ;
Une erreur 500 Internal Server Error ;
Une « Ce site rencontre des problèmes techniques » (introduite dans WordPress 5.2.2) ;
Ou d'autres erreurs similaires.
Pour résoudre ce problème, suivez simplement les étapes ci-dessous.
Pour identifier la cause du problème sur votre site, consultez le fichier error_log. Ce fichier enregistre toutes les erreurs critiques rencontrées par votre site web.
Vous pouvez le trouver dans votre compte cPanel > le menu « Gestionnaire de fichiers » > le répertoire racine de votre installation WordPress.
Une fois dans le dossier racine du domaine, recherchez le fichier error_log. S'il existe, suivez ces étapes :
Faites un clic droit sur le fichier, puis sélectionnez Afficher :

Dans le journal, vous pouvez voir une erreur telle que : « Aucun fichier ou dossier de ce type dans… », suivie du chemin du fichier manquant. Cela indique qu'un fichier requis est absent et empêche le site de fonctionner correctement.
Par exemple :/home/cPuser/public_html/wp-settings.php

Pour restaurer le fichier manquant, faites défiler jusqu'à la section « Comment remplacer les fichiers manquants » de ce guide.
Si le fichier error_log n'est pas disponible dans le répertoire racine de votre site, vous pouvez activer l'option PHP display_errors dans votre compte cPanel. Ce paramètre permet d'afficher les messages d'erreur directement sur votre site, ce qui facilite l'identification du problème.
Important : Pour des raisons de sécurité, veillez à désactiver display_errors une fois le dépannage terminé.
Vous pouvez activer l'option PHP de la manière suivante :
Via php.ini
En plus du menu « Ajustements PHP » de cPanel, vous pouvez également modifier certains paramètres d'un site directement via un fichier php.ini en y ajoutant/modifiant les lignes correspondantes.
Pour activer l'option display_errors, vous devrez ajouter la ligne suivante au fichier : display_errors=1
Vous pouvez soit créer un nouveau fichier php.ini dans le dossier racine du site et y ajouter la ligne, soit modifier le fichier généré par le système en suivant les étapes ci-dessous.
Connectez-vous à votre compte cPanel et accédez au menu « Gestionnaire de fichiers ».
Assurez-vous que l'option « Afficher les fichiers cachés (dotfiles) » est activée dans les paramètres :

Accédez au répertoire suivant : /home/cPanel_user/.system-php/ini

Sélectionnez la version PHP attribuée à votre domaine puis sélectionnez le répertoire du domaine. Par exemple, le chemin complet peut ressembler à :
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
Faites un clic droit sur le fichier php.ini et sélectionnez Modifier.
Ajoutez la ligne suivante au fichier : display_errors=1
Via .htaccess
Pour activer l'option PHP display_errors via le fichier .htaccess, vous devrez modifier le fichier dans le répertoire racine du site dans le « Gestionnaire de fichiers » et y ajouter la ligne suivante :php_value display_errors 1
Les étapes détaillées pour localiser le fichier .htaccess se trouvent dans cet article.
Après avoir effectué vos modifications, cliquez sur Enregistrer.
WordPress utilise une structure de fichiers simple et organisée, ce qui facilite la restauration des fichiers manquants ou corrompus. Il est fortement recommandé de remplacer les fichiers principaux par défaut, car cela garantit que tous les fichiers compromis par des logiciels malveillants sont entièrement restaurés. Cependant, procédez avec prudence : remplacer certains fichiers ou dossiers peut entraîner une perte de données s'il n'est pas fait correctement.
Suivez les étapes ci-dessous pour remplacer les fichiers WordPress manquants :
Connectez-vous à votre cPanel et allez dans Softaculous Apps Installer.
Créez une nouvelle installation WordPress dans un sous-répertoire temporaire. Pour cela, cliquez sur l'icône WordPress puis sélectionnez Installer :

Vous serez redirigé vers la page des paramètres d'installation. Là, sélectionnez le nom de domaine concerné dans le menu déroulant et saisissez le nom d'un sous-dossier dans le champ Dans le répertoire.
Dans cet exemple, nous utilisons le sous-dossier « fix » pour l'installation WordPress :

REMARQUE : Remplacer tous les fichiers par défaut mettra à jour votre installation existante vers la version utilisée dans l'installation temporaire « fix », et mélanger des fichiers de différentes versions peut provoquer des conflits système et perturber le fonctionnement du site.
Si le maintien de votre version actuelle de WordPress est important, ou si vous prévoyez de ne remplacer que certains fichiers, vérifiez la version de votre site dans le fichier /wp-includes/version.php , et assurez-vous que la nouvelle installation utilise la même version de WordPress :

Vous pouvez choisir la version de WordPress pour la nouvelle installation directement dans la fenêtre d'installation :

Une fois tous les paramètres configurés, cliquez sur Installation rapide ou faites défiler jusqu'en bas de la page d'installation et cliquez sur Installer.
Après la fin de la nouvelle installation WordPress, ses fichiers apparaîtront dans le « Gestionnaire de fichiers » > le répertoire racine de votre domaine. Ouvrez le dossier en double-cliquant dessus :

Pour remplacer un fichier manquant spécifique (par exemple, wp-settings.php), localisez ce fichier dans le répertoire de la nouvelle installation.
Ensuite, déplacez le fichier vers le répertoire racine actuel de votre site en faisant un clic droit sur le fichier > cliquez sur Déplacer > saisissez le chemin du dossier racine de votre site > cliquez sur Déplacer le(s) fichier(s) :

Une fois terminé, le fichier manquant a été restauré et votre site devrait maintenant se charger correctement.
Dans le processus de remplacement de tous les fichiers WordPress par défaut d'un site, les étapes 1 à 6 sont identiques à celles de la section « Comment remplacer les fichiers WordPress manquants ».
Après avoir terminé ces étapes et créé la nouvelle installation WordPress, pour remplacer tous les fichiers par défaut dans le dossier racine de votre site, veuillez suivre ces étapes :
Ouvrez le dossier racine de la nouvelle installation WordPress :

Dans le dossier de la nouvelle installation, supprimez les fichiers et dossiers suivants :

.htaccess
wp-config.php
wp-content
Ces fichiers et dossiers contiennent la configuration et le contenu de votre site, et doivent rester inchangés.
Ensuite, déplacez les fichiers restants vers le répertoire racine de votre site principal. Pour cela, utilisez le bouton Tout sélectionner > cliquez sur Déplacer > saisissez le chemin du dossier racine de votre site > cliquez sur Déplacer le(s) fichier(s) :

Les fichiers principaux de WordPress ont été entièrement remplacés. Rendez-vous sur votre site pour vérifier que tout se charge correctement.
Si le site affiche toujours des erreurs, vérifiez à nouveau le error_log. Dans la plupart des cas, des problèmes supplémentaires sont causés par des fichiers de thème ou de plugin manquants.
Des fichiers de thème ou de plugin manquants peuvent survenir pour plusieurs raisons, mais la cause la plus fréquente est la présence de logiciels malveillants qui infectent et suppriment des composants essentiels de votre installation WordPress.
Si des fichiers de plugin ou de thème WordPress sont manquants, vous pouvez rencontrer :
Une page blanche ;
Une erreur 500 Internal Server Error ;
Une « Ce site rencontre des problèmes techniques » (introduite dans WordPress 5.2.2) ;
Une page partiellement chargée ou visuellement « cassée ».
Pour obtenir de l'aide pour diagnostiquer le problème, consultez les sections suivantes de cet article : Vérifiez le fichier error_log de votre site web et Activez l'option PHP display_errors.
Vous pouvez voir des messages d'erreur similaires aux suivants dans votre error_log ou directement sur le site :
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
Voici un exemple d'erreur causée par un fichier de plugin corrompu ou manquant :

Pour restaurer le fichier manquant, réinstallez simplement le thème ou le plugin concerné.
REMARQUE : Les fichiers functions.php manquants dans les thèmes sont souvent liés au wp-vcd.php malware, généralement situé dans le répertoire /wp-includes. Avant d'installer un nouveau thème, supprimez wp-vcd.php s'il existe, ou, pour garantir une sécurité totale, remplacez tous les fichiers WordPress par défaut comme décrit plus haut.
Dans certains cas, lorsque votre site est infecté par des logiciels malveillants, il peut commencer à rediriger les visiteurs vers des pages nuisibles ou suspectes. Ce problème est le plus souvent causé par un plugin ou un thème non sécurisé, qui permet aux attaquants de modifier les URL de la base de données ou de modifier les fichiers de votre site.
REMARQUE : Ne cliquez jamais sur l'un des liens redirigés. Cela pourrait infecter votre ordinateur personnel avec des logiciels malveillants :

Pour corriger les redirections malveillantes, suivez les étapes ci-dessous :
Trouvez un fichier de configuration de base de données pour votre site – wp-config.php dans votre cPanel > Gestionnaire de fichiers > le dossier racine du site. Ouvrez le fichier et trouvez-y le nom de la base de données du site :

Ensuite, ouvrez la base de données attribuée à votre site dans le menu phpMyAdmin de votre cPanel en cliquant dessus, puis accédez à la table wp_options (« wp_ » est le préfixe par défaut ; le vôtre peut différer) :

Vérifiez les valeurs des champs siteurl et home et, si vous voyez des URL malveillantes ou suspectes, remplacez-les par votre véritable nom de domaine :

Analysez le reste de votre base de données à la recherche d'URL malveillantes similaires et remplacez-les en conséquence.
Remplacez temporairement votre .htaccess actuel par une version propre par défaut. Il est préférable de renommer le fichier existant (par exemple, .htaccess_old) et d'en créer un nouveau à partir de zéro.
Pour renommer le fichier, double-cliquez dessus > sélectionnez Renommer dans la liste > saisissez un nouveau nom de fichier > et appuyez sur Renommer le fichier.
Ensuite, pour créer un nouveau fichier, cliquez sur + Fichier > nommez-le .htaccess > et sélectionnez Créer un nouveau fichier.
Une fois le nouveau .htaccess créé, modifiez-le en faisant un clic droit dessus > sélectionnez Modifier dans la liste. Une fois la fenêtre de modification ouverte, collez les règles WordPress par défaut suivantes dans le fichier :# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
Cliquez sur Enregistrer les modifications.
Si votre site continue de rediriger, essayez de remplacer tous les fichiers principaux WordPress par défaut.
Vous pouvez également désactiver temporairement tous les plugins via le tableau de bord WordPress ou la base de données, puis essayez de les activer un par un. Une fois chaque plugin activé, vérifiez le site pour détecter lequel cause le problème de redirection malveillante.