WordPress Avancé
À propos de la leçon

La sécurité d’un site wordpress est un sujet sensible, la chose que chaque propriétaire d’un site redoute est de se lever un matin et découvrir son site ruiné par un piratage.

WordPress est le CMS (content Management System) le plus populaire soit plus de 33% de site internet dans le monde sont des wordpress. Mais qui dit populaire dit le plus exposé au piratage et son côté Open source vient aggraver la situation.

Les sites wordpress ne sont pas les seuls à se faire pirater. Toutes les secondes dans le monde un site se fait pirater. ……


Pourquoi Les Sites WordPress Ont-Ils Des Failles De Sécurité?

Il faut noter que le logiciel wordpress en lui même est sécurisé, dans sa conception. Mais pourquoi existe t-il des failles de sécurité?

Comme je l’ai souligné plus haut, wordpress est Open source ce qui un avantage mais malheureusement un inconvénient majeur, car le code source est vu par tous, certains fichiers peuvent être lus en ligne.

Afin de corriger les éventuelles failles de sécurité dans le coeur de wordpress, celui-ci ne cesse d’être mis à jour, ce qui est plutôt une bonne chose. Le problème est que certains constructeur de plugin et de thème ne vont pas au même rythme que les programmeurs de wordpress, ce qui crée des bugs mais surtout des failles de sécurité dans les sites wordpress.

Donc on comprend qu’un site wordpress doit être mis à jour régulièrement (à chaque mise à jour du logiciel par l’équipe wordpress). Ce qui implique que tout site internet ayant une version obsolète de wordpress est vulnérable. C’est ce qui ressort de l’étude réalisée par sucuri en 2017 révélant que Parmi les sites WordPress piratés examinés par Sucuri, 39,3% utilisaient un logiciel principal WordPress obsolète au moment de l’incident .

Mais l’utilisation d’une version obsolète de wordpress n’est pas la seule faille de sécurité. Le même rapport d’étude effectué par sucuri révèle plusieurs autres vulnérabilités à savoir: porte dérobée,insérer du code non autorisé dans des versions obsolètes de sites Web et de plugins WordPress,redirections malveillantes,connexion par force brute etc…

Que faire si lors de la mise à jour de wordpress votre site soit cassé à cause d’une incompatibilité avec un ou plusieurs plugin? Faut-il revenir à la version ancienne en attendant qu’une mise à jours du plugin soit fait? Pour ma part il faut toujours privilégier la mise à jour de wordpress surtout si c’est une mise à jour majeure, car celle-ci a pour but de corriger certaines failles de sécurité détecté et ajoute de nouvelle fonctionnalités. Les plugins non mis à jour sont les meilleurs moyens qu’utilise les pirates afin de créer des portes dérobées et donc de pirater votre site.

Des pirates ne cessent d’inventer de plus en plus de méthodes de piratage. Mais heureusement il existe des moyens de se prémunir de tout cela, mais il faut noter que le 100% sécurité n’existe pas, c’est un processus continu.

Je vais donc vous partager queques conseils, stratégies et techniques conseillées afin d’améliorer la sécurité des sites wordpress.


Correction Des Vulnérabilités WordPress

Verrouillez L’administration De WordPress

Stratégie appelé “sécurité obscure de wordpress” et la plus courante car elle permet au pirate de moins trouver les portes dérobées wordpress

Désactivation du Login Dans Le Site Internet

Si vous avez un simple site vitrine comme le mien, où l’abonnement à votre site n’est pas nécessaire, il vaudrait mieux désactiver l’objection “login” dans votre site. Pour la faire il vous suffit d’aller: Réglages > Général > Inscription

Ne pas permettre des inscriptions inutiles dans votre site est une couche de sécurité supplémentaire. Si vous décidez néanmoins que les inscriptions soient possible dans votre site, il est conseillé de vous créer un compte avec le pseudo “admin” puis de retirer tous les droits à ce compte

Déplacer La Page De Connexion

Lorsque vous installez votre site wordpress, l’url de connexion au dashboard est domaine.com/wp-admin, le problème avec cela est que tous les robots, les pirates informatiques et les scripts le savent aussi. En modifiant l’URL de connexion à mon tableau de bord wordpress, mon site sera moins ciblé et mieux protégé des attaques par force brute.

Pour déplacer l’url de connexion utiliser le plugin gratuit WPS Hide Login, au moment où j’écris cet article il compte 300 000 installations, compatible avec la version wordpress actuelle et avec la version PHP la plus récente (7 et plus).

Une fois installé celui ci se retrouve sur Réglages > Général, vous allez tout en bas,

 

1- vous mettez la nouvelle url de connexion à votre tableau de bord ( et le garder jalousement)

2- mettez l’url de redirection lors des tentatives de connexion à votre tableau de bord

Le plugin Move login fait aussi le même taf même s’il n’a pas été mise à jour depuis bien longtemps.

Une fois l’URL de connexion déplacer il faut aller encore plus loin.

Limitation Du Nombre De Tentative De Connexion

Pour limiter le nombre de tentative de login à mon admin j’utilise le plugin gratuit WPS Limit Login, celui-ci est du même constructeur que le plugin cité plus haut. Il jouit d’une note de 5/5 et de plus de 300 000 installations actives.

Une fois installé et activé vous le retrouvez dans la partie réglage de wordpress.

La configuration est plutôt simpliste, faites le selon votre convenance. Il est possible d’avoir de juste noire et blanche.

Jusque là tout va bien, mais je décide d’aller encore plus loin en ajoutant une couche de sécurité supplémentaire.

Captcha Sur Votre Page De Connexion

Une Captcha permet de faire une distinction entre l’homme et la machine (boot) et vu que la plupart de pirate utilise des boots pour crawler des sites à la recherche des failles, autant dire q’un captcha ajoute une autre couche de sécurité dans votre site wordpress.

Dans mon cas, je décide d’utiliser le plugin Login No Captcha reCAPTCHA, il comptabilise plus de 50 000 installations active au moment de la rédaction de cet article.

Après la mise en place du système de Captcha, toujours dans l’optique de mieux sécurité mon tableau d’administration de wordpress je décide d’utiliser des mots de passe fort.

Utilisation De Mot De Passe Fort

Un mot de passe fort a pour but de mieux se protéger des attaques dite de force brute. Malheureusement bon nombre de personnes peut être même toi qui le lit ont des mots de passe faible et donc susceptible d’être volés.

Parmis les mots de passe populaires volés figures les mots de passe suivants:

123456  ​​​​ qwerty123 ​​ password1  ​​​​ Aa123456  ​​​​ 234567  ​​​​ 111111  ​​ ​​​​ 12345  ​​ ​​ ​​​​ 12345678  ​​ ​​ ​​ ​​​​ 123456789

Quelques outils de gestion des mots de passe

dashlane, c’est celui que j’utilise et il est cool, car en plus de stocker mes mots de passe celui-ci les analyse et je peux modifier celle déjà utilisé ou utiliser depuis longtemps ceci en régénérant un nouveau mot de passe. Je n’ai qu’à retenir un seul mot de passe, le mot de passe maître, celui me permettant de me connecter à mon dashlane.

Comme alternative à dashlane, vous avez lastpass, 1password ou vous pouvez seulement utiliser un générateur de mot passe fort comme Strong Password Generator.

Nous sommes déjà plutôt bon là, qu’en dites-vous? Oui me diriez-vous, mais il y’a encore une dernière chose que je pourrais mettre en place afin de clore ce chapitre sur le verrouillage de mon dashboard wordpress: la double authentification.

Authentification À Deux Facteurs

C’est une méthode de sécurité qui a le mérite d’être efficace car elle implique un processus en deux étapes dans lequel vous avez besoin non seulement de votre mot de passe pour vous connecter, mais d’une autre méthode d’identification qui peut être un deuxième mot de passe fourni par SMS,par email ou un appel téléphonique, mais aussi un code QR-code à scanner.

Pour cette méthode je vous recommande le plugin Google Authenticator, il compte plus de 20 000 installations active et une note de 4.5/5 .Une fois installé et activé j’aurai besoin d’un code à usage unique pour pouvoir se connecter, car le code est généré automatiquement.

La configuration se fait sur votre tableau de bord WordPress grâce à son onglet qui s’est ajouté au menu wordpress.

Il vous faudra bien sûr l’application Google authenticator,que vous devrez lier à votre site afin de recevoir des codes générés automatiquement.

Bien sûr il vous faudra installer l’application dans votre smartphone, une autre alternative que j’ai autrefois utilisé est Keyy.

Après la mise en place d’une double authentification et du captcha voici à quoi ressemble le formulaire de connexion de mon site internet:


Utiliser La Dernière Version PHP

Le langage PHP un langage de scripts généraliste et Open Source qui s’exécute côté serveur, c’est ainsi le socle de votre installation wordpress. Autant dire qu’il vaudrait mieux qu’il n’y ait pas de faille de ce côté.

Les versions de PHP sont mise à jour pour des raisons de sécurité et de performance, alors ne pas mettre à niveau la version de votre PHP c’est ne pas bénéficier des mises à jour sécurité et des bugs corrigés.

Comment Mettre À Niveau La Version PHP?

Si vous êtes sur un hébergeur WordPress utilisant cPanel, vous pouvez généralement basculer entre les versions de PHP en cliquant sur «Sélection PHP» dans la catégorie de logiciel.

Comment Cacher La Version Php Utilisée ?

Une fois la version récente du PHP choisie, il serait aussi important de cacher la version PHP avec laquelle votre wordpress fonctionne. Pour cela il faut appliquer la fonction expose_php Off

Pour le faire, vous allez sur: cpanel> sélection PHP>Switch to PHP Option>Expose_php> choisir “off”>valider


Désactiver L’éditeur D’extensions Et Thème Dans Mon Back Office

En temps normal il est possible d’accéder aux fichiers du thème et celui des extensions directement dans mon back office wordpress, celui-ci en allant dans Apparence > Editeur pour le thème et dans Extensions > Éditeur pour les extensions.

Si cette fonction a le mérite de me faire gagner du temps lorsque je veux ajouter un script dans mon thème ou extension cela constitue une très grande faille de sécurité, en effet si un pirate arrive à pénétrer dans mon back office, il pourrait très bien introduire du code malveillant via cet editeur et cassé mon site.

La désactivation de cette fonction ajoute une autres couche de sécurité supplémentaire à mon site internet, et pour le désactiver il me suffit d’ajouter le code suivant dans mon fichier wp-config.php

1

define(‘DISALLOW_FILE_EDIT’,true);


Cacher La Version De WordPress De Mon Site

Ne pas permettre aux uns les autres de voir la version wordpress installée dans mon site augmente une couche de sécurité supplémentaire car S’ils voient que j’utilise par exemple une installation WordPress obsolète, cela pourrait être une invitation à me pirater.

Pour cacher cette version, il suffit d’ajouter le code suivant dans le fichier fonction php de mon thème enfant puisque j’en ai un, mais si vous n’en avez pas mettez le dans fonction php votre thème principal

1

2

3

4

fonction wp_version_remove_version () {  

revenir ”;  

}  

add_filter (‘the_generator’, ‘wp_version_remove_version’);

Mais il existe un autre moyen, en règle générale pour accéder au code source d’un site internet, il suffit de faire un clic droit sur la souris et d’aller sur code source ou de taper un raccourci clavier suivant:Ctrl+U. Le plugin WP Content Copy Protection & No Right Click empêche l’ouverture du menu contextuel et donc de voir le code source d’un site.


Durcir Le Fichier Wp-Config-Php

Le fichier wp-config-php est le socle de votre installation wordpress, Il contient les informations au sujet de la base de données, à savoir l’hôte (votre hébergeur web), l’identifiant, et le mot de passe. Ces informations permettent à WordPress de communiquer avec la base de données afin de stocker et extraire des données, comme les articles, les utilisateurs, les réglages, etc..

C’est dans ce même fichier que vient se loger la clé de sécurité de votre site internet lors de son installation, autant dire que sans ce fichier votre site ne sera pas accessible, d’où son importance.

Par conséquent si je veux sécuriser mon site internet certaines manipulations devront être faites dans ce fichier à savoir:

Changer La Clé De Sécurité De Mon Installation

Lorsque vous installez votre site, WordPress chiffre les informations stockées dans vos cookies ceci en créant une clé de sécurité unique dans votre fichier wp-config.php.

Pour avoir une nouvelle clé de sécurité unique je vais utiliser le générateur de clé de sécurité four par l’équipe de wordpress en utilisant le lien suivant: générateur de clef en ligne.

Une fois la clé générée, j’irai la placer dans mon fichier wp-config.php en remplacement de ma clé existante.

Néanmoins il est conseillé de faire cette manipulation lorsque vous avez fait plusieurs migration de votre site ou si vous avez acheté un site internet.

Modifier Les Autorisations D’accès Au Fichier Wp-Config-Php

Une autorisation d’accès aux fichiers racine d’un site wordpress se présente sous la forme “chmod XYZ”. Chacun de ces caractères (XYZ) correspondent à un droit particulier :

    • X correspond aux droits du propriétaire

    • Y correspond aux droits du groupe

    • Z correspond aux droits des autres utilisateurs

Les caractères (XYZ) sont des chiffres et ils correspondent aux valeurs suivantes:

    • 0 = Pas de permissions pour cet utilisateur

    • 1 = Executer (Execute)

    • 2 = Ecriture (Write)

    • 3 = Ecriture et Execution

    • 4 = Lecture (Read)

    • 5 = Lecture et Execution

    • 6 = Lecture et Écriture

    • 7 = Tous les droits (lecture, écriture et exécution)

Par conséquent si je définis mon fichier sur chmod 644 qui est la valeur par défaut définis sur les fichiers racine de wordpress, cela signifie que les fichiers de mon site sont lisibles et modifiable par moi et lisibles par tous les autres, ce qui vous l’auriez compris constitue une faille de sécurité.

Si vous êtes désireux de connaître les différentes combinaisons d’autorisation d’accès aux fichiers racine de votre site bien vouloir cliquer sur le lien suivant: liste complete

Je sais, identifier la correspondance d’autorisation n’est pas chose facile, alors j’ai un cadeau pour vous, un “simulateur Chmod”. Celui- ci vous permettra d’avoir la valeur numérique correspondante l’autorisation voulue

Moi je choisis de définir mon fichier sur “400“et pour le faire j’ai besoin d’y accéder via le FTP puis je suis la procédure suivante:

    • Accéder aux fichiers racine de mon site

    • Identifier le fichier wp-config.php

    • Le sélectionner en faisant un clic

    • Ouvrir le menu contextuel grâce au bouton droit de la souris

    • Cliquer sur droit d’accès au fichier

    • Modifier la valeur numérique

Ok voilà vous connaissez maintenant comment modifier les droits d’accès au fichier wp-config.php.

Protéger Le Fichier Wp-Config.Php

Vous l’auriez compris ce fichier wp-config.php est d’une importance capitale pour le bon fonctionnement de votre site internet et il se doit d’être protégé. La ligne de code suivante inséré dans le fichier .htaccess permet de totalement le protéger:

1

2

3

4

5

# Protéger le fichier wp-config.php  

<files wp-config.php>  

order allow,deny  

deny from all  

</files>

Pour voir tout ce qui est possible de faire avec le fichier wp-config.php je vous prie de consulter le codex wordpress.


Protection Contre Les Hyperliens

Les hyperliens encore appelé Hotlinking consiste en un mot au vol d’une image dans site internet. Comment ça marche?

Un internaute voit une image sur votre site qui lui plaît bien, il copie l’url de l’image, le colle dans son site du coup l’image s’affiche chez lui aussi tout en conservant son lien d’origine.

Pour se protéger de cette pratique, solution pour le  fichier .htaccess

1

2

3

4

5

# Protection contre Hotlinking

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dywants.com [NC]

RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

Vous pouvez le réutiliser en veillant à mettre votre propre nom de domaine.


Durcir Le Fichier .Htaccess

Le fichier .htaccess est un fichier de configuration d’Apache, le logiciel qu’utilise la plupart des serveurs web. Ce fichier permet de faire des redirections, de limiter les spams, améliorer la vitesse de chargement du site et améliorer la vitesse d’un site. En ce qui me concerne c’est l’amélioration de la sécurité de mon site, ce fichier me permet de:

Désactiver Le Répertoire De Fichier Du Site Internet

Lorsque vous installer votre site il est possible par l’url domain.com/wp-includes/ de voir le répertoire de fichier d’un site internet et mon site n’échappe pas à la règle, ce qui comporte une grande faille de sécurité.

Pour désactiver ce répertoire j’ai besoin du fichier .htaccess et d’y ajouter la ligne de code suivante:

1

2

# Désactiver l’affichage du contenu des répertoires  

   Options-Indexes

Limiter Le Spam Des Commentaires

Les Spam sont une grosse plainte pour tout détenteur d’un site internet, même s’il existe des plugins comme akismet pour filtrer les spams dans les commentaires,certains arrivent à se frayer un chemin et faire très mal.

Afin de prêter main forte à akismet, qui fait deja un tres bon boulot pour mon site. Je décide d’y ajouter les lignes de code suivantes dans le fichier htaccess:

1

2

3

4

5

6

7

8

# Éviter le spam de commentaires  

  <IfModule mod_rewrite.c>  

  RewriteCond %{REQUEST_METHOD} POST  

  RewriteCond %{REQUEST_URI} .wp-comments-post\.php*  

  RewriteCond %{HTTP_REFERER} !.dywants.com.* [OR]  

  RewriteCond %{HTTP_USER_AGENT} ^$  

  RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]  

  </IfModule>

Protéger Le Fichier .Htaccess

Et pour clore ce chapitre sur le fichier .htaccess je vais le protéger afin qu’il ne soit pas la cible des attaques, pour le protéger je l’ajoute la ligne de code suivantes:

1

2

3

4

5

6

# Protéger .htaccess et .htpasswds  

   <Files ~ “^.*\.([Hh][Tt][AaPp])”>  

   order allow,deny  

   deny from all  

   satisfy all  

   </Files>

Pour plus de détails sur ce qui est encore possible de faire avec le fichier .htaccess, je vous invite à lire le guide complet du fichier .htaccess dans wordpress rédigé par la marmite, certaines ligne de code évoquée dans cet article ont été prise dans ce guide.

Attention: le fichier .htaccess est complexe, la configuration serveur étant différent chez un hébergeur à un autre il se pourrait que certaines lignes de code créée des incompatibilité et casse votre site internet(erreur 500). Par conséquent avec toutes modifications du fichier .htaccess bien vouloir sauvegarder le fichier existant au cas où il ne marchera pas comme prévue.

Si vous rencontrez un problème après modification de ce fichier, contacter votre hébergeur.


Installation De Plugin De Sécurité

J’utilise comme plugin de sécurité, wordfence dans mon site principal et Secupress sur la partie blog du site dywants. Ces plugins permettent de protéger mon site contre diverses attaques ceci en exécutant les tâches suivantes:

    • Login anti force brute

    • IP bloquées

    • Pare-feu

    • Alertes de sécurité

    • Analyse des logiciels malveillants

    • Bloc pays par géolocalisation

    • Le scanner de programmes malveillants intégré bloque les demandes contenant du code ou du contenu malveillant.

    • Etc…

Mais étant donné que j’utilise la version gratuite de wordfence, je suis donc obligé d’utiliser certains plugins spécifique supplémentaire dont certains sont déjà mentionnés plus haut. En complément des plugins cités plus haut j’utilise:

    • Jetpack +akismet: pour le blocage des spams

    • WPS Bidouille: il est de la même famille que le plugin wps login, celui-ci m’a permis de:

    • Masquer les erreurs de connexion

    • Retirer la version de wordpress

    • Désactiver l’API Rest

    • Désactiver la page et le lien d’auteurs

Oui je sais ça fait beaucoup de plugins me direz-vous, mais en matière de sécurité, il n’y a jamais trop. Moi je suis très regardant sur les mises à jour des plugins installés dans mon site du coup je peux me permettre autant de plugins. Néanmoins si vous utilisez des versions premium de wordfence et Secupress par exemple vous n’aurez pas besoin de plugin supplémentaire pour l’authentification à deux facteurs.

Avec Secupress pro vous n’aurez pas besoin d’un plugin pour les spam, placer l’url de connexion à votre tableau de bord etc…

Si vous ne voulez pas vous casser la tête avec autant de plugin, je vous recommande les plugins de sécurité suivants:

 

Mais aussi puissant que soit ces différents plugins de sécurité, ils ne feront pas vos mises jour qui est à mon sens la première mesure de sécurité à mettre en place.


Hebergement Web

La qualité d’hébergement web est tout aussi essentielle pour la sécurité de votre site internet. Ceux-ci sont en quelque sorte le premier rempart entre vous et les pirates grâce à leur pare feu.

Certains hébergeurs offre des services bien poussé en matière de sécurité, c’est le cas par exemple de wpserveur, avec offre de base est à 228 euro HT/an + l’offre de nettoyage wp à 299 dollars HT, êtes-vous parés à toutes les éventualités?

Les hébergeurs comme Kinsta , wp engine offrent aussi des mesures de sécurité à leur client et bien d’autres fonctionnalités,O2switch offre par exemple une protection DDoS.


Conclusion

Voilà, nous sommes au thème de cet article sur la sécurité du site dywants. Comme vous l’avez constaté, il existe plusieurs leviers sur lesquels vous pourriez agir afin de sécuriser au mieux votre site.

Je n’ai abordés que des points qui me semblent important dans cette articles, mais ma mise en place de tous ces mesures évoquées vous garantis dès et déjà une sécurité assez poussée.

S’il ne vous est pas possible selon votre niveau de mettre en place tous ces couches de sécurité mentionnée plus haut, effectuer les éléments suivants est déjà une bonne chose pour votre site internet:

    • Faire des mises à jour régulières de vos plugins, themes et wordpress

    • Verrouiller votre administration wordpress

    • Et installer un plugin de sécurité.

Visits: 38