Doublez la sécurité de votre WordPress en 13 points

Par , Le 10 janvier 2015 (Temps de lecture estimé : 8 min)

Suite à la mésaventure qui m’est arrivée hier, j’ai accentué la sécurité de mon WordPress. Toutefois, sécuriser un site est quelque chose qui se pense avant que les problèmes n’arrivent et bien heureusement pour moi j’avais déjà pris des mesures ! Voici une liste de bonnes pratiques à avoir.

aetherconcept-securite-00

Édit du 18/06/2017 : je viens de mettre à jour cette liste de bonnes pratiques. Ce qui est écrit est donc toujours valable.

Ce Vendredi matin de Janvier 2015, un plugin de WordPress de mon site est parti en vrille suite à une série d’attaques virulentes contre mon site. Le plug-in a littéralement planté de façon inexpliquée et a publié 1000 tweets en 3 heures. Certains followers n’ont que moyennement apprécié et je m’en sors sans plus de casse que des followers perdus. Par contre, suite à cette attaque j’ai accentué la sécurité de mon site avant de passer à ceux de mes clients et de les en informer.

Si je fais une exception en publiant cet article en dehors de mes créneaux de publication habituels, ce n’est pas pour rien : l’un de mes clients, qui est militaire réserviste, m’a appelé suite à mon message pour me remercier, mais surtout pour me confirmer l’information qu’il avait lui aussi du côté de l’armée : La France subissait alors une vague de piratages, avec une petite préférence pour les sites orientés défense. Bien que je devrai être relativement tranquille maintenant, j’ai quand même constaté dix nouvelles tentatives (infructueuses) dans la journée…

Alors comme personne n’est à l’abri , voici quelques outils afin de sécuriser votre site Internet.

Les plug-ins

Il existe plusieurs solutions et choses à faire pour sécuriser son site. Les plug-ins peuvent alors grandement vous aider pour effectuer certaines tâches.

Redirection

À l’origine, ce plug-in sert à mettre en place des redirections 301. C’est-à-dire qu’il indique à un visiteur ou un moteur de recherche le nouvel emplacement d’une page dont l’URL n’est plus la même (déménagement de site, refonte du site, etc.). Mais ce qui va nous intéresser, c’est la possibilité de voir les erreurs 404 générées et avec quelles URL. En face, vous trouverez alors l’IP qui a généré l’erreur. Et certaines URL ne trompent pas : il y a bien eu tentative. On retient donc l’IP, qui va nous servir pour le plug-in suivant.

aetherconcept-securite-01

iQ Block Country

Ce plug-in très complet et gratuit permet de bloquer l’accès de votre site dans les pays de votre choix ! Mieux encore, il fait la distinction entre frontend et backend, si bien que vous pouvez être précis dans vos réglages. Après études des attaques sur ces dernières semaines, j’ai décidé de restreindre l’accès du site pour les pays suivant : Chine, Ukraine, Russie, Turquie, Émirats Arabes Unis, Taïwan, Corée du Nord, Pakistan. La Chine, l’Ukraine et la Russie étant les sources d’attaques les plus récurrentes.

aetherconcept-securite-03

Pensez toutefois a bien supprimer le pays où vous vous trouvez des listes par défaut avant d’activer les fonctionnalités du plug-in. Je préfère vous prévenir, bien que ce soit écrit devant les options concernées iQ Block Country fait également le boulot de IB Ban (plug-in que je présentais dans cet article auparavant) et vous permet d’y ajouter des IP à bannir.

Rename WP-Login

Cette extension-là va changer l’URL du panneau de connexion à votre administration. Si bien que ceux qui scannent votre site à la recherche d’un wp-login.php ne trouveront rien du tout.

aetherconcept-securite-04

Limit Login Attempts

Toutefois, en complément du précédent, ce module permet de limiter les tentatives de connexion à l’interface d’administration de WordPress. Très simple d’utilisation, et surtout très pratique puisqu’il bloque les IP pour une durée de votre choix une fois passé un certain nombre d’essais infructueux.

aetherconcept-securite-05


Le .htaccess

Le .htaccess est un fichier de configuration du protocole HTTP. On le trouve le plus souvent à la racine du site, mais on peut aussi le trouver à différent niveau dans des sous-dossiers. Voici quelques lignes de code pour vous aider.

Masquez vos répertoires

Masquer vos répertoires aura pour effet de rendre vos dossiers inaccessibles. C’est-à-dire que même en ayant l’URL d’un dossier d’images par exemple, l’internaute ne pourra avoir accès à celles-ci. Seul votre site sera habilité à exploiter ces répertoires pour afficher vos contenus. Afin de procéder à cette opération, il vous suffit d’ajouter la ligne suivante à votre .htaccess :
 Options All -Indexes
IndexIgnore * 

Sécurisez vos fichiers wp-config.php et .htaccess

Votre fichier wp-config.php contient pas mal de choses qu’il vaudrait mieux éviter de laisser fuiter. Ouvrez-le, et constatez : identifiants ftp et sql, mots de passe, bref tout ce qu’on préfèrerait garder pour soit. Ajoutez les lignes suivantes à votre .htaccess pour être pénard sur ce point :
 <files wp-config.php>
order allow,deny
deny from all
</files> 

On fera de même avec les fichiers .htaccess :
 <files .htaccess>
order allow,deny
deny from all
</files> 

Empêchez l’exécution de scripts php dangereux

Parfois, il suffit d’un thème ou d’un plug-in vérolé, et sans le savoir celui-ci va planquer une petite saleté de fichier dans un sous-dossier de « wp-content/upload ». La solution pour empêcher leur exécution est de créer un fichier .htaccess spécialement pour le dossier « upload » et d’y écrire les lignes suivantes (en remplaçant les IP d’exemples par celle du serveur de votre site ainsi que la vôtre au cas où) :
 <Files *.php>
Deny from all
allow from 255.255.255.255
allow from 121.121.121.121
</Files> 

Se protéger de diverses tentatives d’attaques (XSS, clickjacking et MIME-Type sniffing)

Le XSS concerne ce qu’on appelle l’injection de code, qui peut ensuite mettre en danger vos visiteurs ou se servir de votre hébergement pour y héberger quelques contenus illicites. J’en ai d’ailleurs eu l’exemple avec une connaissance m’ayant sollicité pour sécuriser son site, alors réalisé par un autre prestataire. Des hackers russes avaient trouvé le moyen d’héberger dans ses fichiers une immense base de données ainsi que des pages web, servant à la revente de produits peu légaux, comme de la drogue ou des variantes de la petite pilule bleue…
 <ifModule mod_headers.c>
Header set X-XSS-Protection « 1; mode=block »
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options: « nosniff”
</ifModule> 

Éviter que l’on découvre l’identifiant d’un auteur

Pour se connecter à l’interface d’administration de WordPress, il faut un identifiant. Et quand on l’a, la moitié du travail est déjà fait. Ne reste alors plus que le mot de passe. Ce petit bout de code permet de rendre la tâche plus compliquée.
 <IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* – [F] </IfModule> 


Mais aussi…

Évitez que l’on puisse voir la version de WordPress

Tout est dans le titre. Vous n’avez qu’à placer ce petit bout de code dans le fichier function.php de votre thème :
 remove_action(‘wp_head’, ‘wp_generator’); 

Désactivez Windows Live Writer

Windows Live Writer est un logiciel permettant de bloguer à distance. Pour que ce logiciel puisse fonctionner correctement, une ligne de code est générée par WordPress. Afin de supprimer celle-ci, il vous suffit de coller cette ligne dans le fichier function.php de votre thème :
 remove_action(‘wp_head’, ‘wlwmanifest_link’); 

Supprimez les fichiers readme.html et licence.txt

Situés à la racine du site, ces fichiers indiquent le numéro de version de WordPress. Ça serait ballot de laisser trainer ça…

Bonus

Téléchargez ma liste des IP à bannir. Cette liste contient les IP sources de tentatives récurrentes de piratages et de spams répétés. A ajouter dans IP Ban ou mieux encore, dans iQ Block Country car elle complète assez bien ce dernier.


Voilà, j’ai fait le tour des pratiques de base les plus courantes. Au passage, j’ai constaté que d’avoir bloqué l’accès à certains pays a fait diminuer le nombre de spams. Il y a bien sûr toujours moyen de faire plus et encore mieux, mais voilà qui devrait au moins vous protéger des problèmes les plus récurrents. Un petit nombre pour clore cet article : 60 000, c’est le nombre de tentatives d’intrusions que j’ai recensé en l’espace de quatre ans. Cette donnée est à associer au fait que ce blog est assez visible et que la plupart sont certainement des bots, mais ça reste impressionnant.

Cet article vous a plu ? Partagez-le !

    

Sébastien DROUIN

Consultant en communication, dirigeant de L'Aetherium, designer graphique, ingénieur de formation, AI prompt engineer, zèbre et agitateur d'idées. J'aide les entreprises à multiplier leurs ventes grâce au web 🚀

Rejoignez les 10 000 visiteurs mensuels du blog et recevez la checklist d'optimisation du taux de conversion pour booster votre site !
En m'inscrivant, j'accepte de recevoir par e-mail les derniers articles du blog et je prends connaissance de la politique de confidentialité.