Guide complet pour nettoyer et sécuriser WordPress après un hacking

Le week-end dernier, Iceranking a été piraté par un hackeur russe ! Il avait crée un tas de liens dans mes articles pointant vers ses sites web. J’ai passé une bonne journée au nettoyage de mon site et j’en ai profité pour sécuriser mon application wordpress.

Sécurité WordPress

Sécuriser votre site wordpress

Cet article vous permettra de comprendre comment restaurer votre blog après un hacking, et je vous délivre quelques conseils pour améliorer la sécurité de wordpress.

1 – Scanner votre ordinateur avec un antivirus et un anti-malware

Avant tout, il faut scanner l’ordinateur avec un antivirus et même avec un anti-malware pour détecter et supprimer les trojans.

2 – Sauvegarder votre site et votre base de données

Même une copie piratée de votre blog contient encore probablement des informations précieuses. Je vous recommande donc de faire une copie de votre site en local (template et images téléchargées) via un FTP et de sauvegarder automatiquement votre base de données .sql avec le plugin WP-DB-Backup.

3 – Supprimez tous les fichiers et les dossiers dans le répertoire WordPress

4 – Changer le mot de passe de votre accès FTP </p>

5 – Télécharger et ré-installer une nouvelle version de WordPress et les plugins dont vous avez besoin

Il est essentiel d’installer une nouvelle version de wordpress pour être sûr de repartir sur de bonnes bases. Il faut également télécharger les dernières versions de vos plugins, car le pirate a pu introduire des scripts dans vos plugins.

6 – Importer la sauvegarde de votre base de données (avant piratage si possible)

7 – Supprimer tous les liens ou les iframes qui ont été insérés dans la base de donnée piratée

Pour vous aider à trouver les liens, les scripts ou les i-frames du hacker, la requête SQL, ci-dessous, isole les messages dans votre base de données :

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%' 
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%' 
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'

Si vous avez perdu du contenu dans vos articles, vous pouvez essayer de le récupérer en vérifiant le cache de vos pages sur Google et Yahoo.

8 – Sécuriser votre application WordPress

Changer immédiatement votre mot de passe admin.

Protéger votre blog avec un fichier .htaccess

Installer le plugin Secure WordPress

Le plugin propose d’activer des fonctions pour sécuriser au maximum votre blog :
– Désactiver la suggestion et le message d’erreur à la connection de WordPress.
– Supprimer la version WordPress dans toutes les zones, y compris le flux, mais pas dans la partie admin.
– Supprimer la version de WordPress dans la zone d’administration pour les non-administrateurs. Afficher la version de WordPress uniquement aux utilisateurs avec les droits d’édition de vos plugins.
– Créer le fichier index.php dans les répertoires /plugins/ et/themes/ pour éviter de montrer votre liste de répertoire.
– Supprimer le lien de Really Simple Discovery dans wp_head du frontend.
– Supprimer la mise à jour du Noyau WordPress pour tous les utilisateurs sauf l’administrateur.
– Supprimer le lien de Windows Live Writer dans wp_head du frontend.
– Supprimer la mise à jour des plugins et du template pour tous les utilisateurs sauf l’administrateur.

Installer le plugin WP Security Scan

Le plugin Wp Security Scan analyse les failles de sécurité de votre application. Il vous suffit de suivre ces recommandations pour mieux sécuriser l’ensemble de vos dossiers et fichiers wordpress.

Renommer le préfixe des tables WordPress dans la base de données.

Pour modifier le préfixe des tables WordPress, qui est par défaut wp_, je vous conseille cet excellent plugin wordpress table rename.

Plugin Table Rename

Il va copier vos tables et leurs contenus dans de nouvelles tables, puis il vous suffira de supprimer manuellement les tables originales.

Phpmyadmin

Supprimer les tables initiales dans phpmyadmin

Ensuite, il vous suffit de modifier le préfixe des tables de la base de données MySQL ‘wp_’, par le nouveau nom ‘wp1142_’ dans le fichier wp-config.php :

$table_prefix = 'wp1142_';

Pour finir, je vous conseille de désactiver les plugins wordpress table rename, wp security scan et secure wordpress.

Bon courage pour la restauration de votre blog :) ! Si vous connaissez d’autres techniques pour sécuriser une application wordpress, merci de les indiquer dans les commentaires.