Salut Ă  tous et bienvenue dans ce nouveau “point sĂ©cu” avec Julio, dans lequel nous allons voir comment sĂ©curiser le fichier wp-config de WordPress.

Allez c’est parti !

Alors, le fichier wp-config de WordPress, vous savez c’est un fichier vraiment très important, c’est un peu le coeur… enfin pas le coeur, mais la pierre angulaire de WordPress parce qu’il y a des informations très sensibles Ă  l’intĂ©rieur.

Vos connexions Ă  la base de donnĂ©es… et puis quoi d’autre ?

Julio : Il n’y a plus les clĂ©s de sĂ©curitĂ© si vous suivez les vidĂ©os.

Alex : C’est ça ! Donc voilĂ , il faut vraiment le protĂ©ger, parce que si quelqu’un met la main dessus, il a accès Ă  tout votre site.

Julio : Donc ce fichier contient ce que l’on appelle des constantes PHP : c’est toutes les lignes qui commencent par “define”.

Il y a deux paramètres Ă  l’intĂ©rieur de cette fonction PHP, le premier est le nom de la constante…

Alex : En majuscules…

Julio : Et le second c’est sa valeur. Donc quand je vais vous parler d’une constante PHP, vous savez que ça parle de cette fonction “define” suivie du premier mot qui est son nom.

Donc ce que l’on va faire Ă©videmment, puisque c’est une vidĂ©o qui va contenir du code, on va vous remettre chaque morceau de code dans la description.

En attendant, j’ai mon petit carnet, parce que je vais vous les lire, je vais vous en donner quelques-uns.

C’est des constantes qui vont vous permettre d’amĂ©liorer la sĂ©curitĂ©.

allow_unfiltered_uploads

Je vais prendre la première pour vous donner un exemple : Il y a une constante qui s’appelle :

allow_unfiltered_uploads

En français : autoriser les téléchargements non filtrés.

Par dĂ©faut, elle n’est pas dĂ©finie, c’est-Ă -dire que quelqu’un pourrait la dĂ©finir, donc ce qui est intĂ©ressant, c’est de tout de suite la dĂ©finir pour la mettre sur sa valeur “fausse” donc “false”.

Que fait cette constante ?

Si on autorisait l’upload non filtrĂ©, ça veut dire qu’en fait, on pourrait envoyer des fichiers qui normalement ne sont pas autorisĂ©s par WordPress.

Donc, ça représente forcément un danger.

Alex : Par exemple, quel type de fichier ?

Julio : On ne peut tout de même pas envoyer les PHP et les exécutables parce que ça WordPress, dans son code, les refuse. Pareil, je crois pour le swf.

Mais par exemple, je ne sais pas moi… il y a les fichiers svg.

Imaginons que quelqu’un dise “moi je veux ajouter le fichier svg”.

On pourrait très bien dire, ça fait partie des types de fichiers qui ne sont autorisĂ©s par exemple que pour les administrateurs, mais par pour un Ă©diteur, or si cette constante n’Ă©tait pas dĂ©finie, on pourrait très bien dire : tous les rĂ´les vont pouvoir le faire.

Tous les rĂ´les qui ont le droit d’uploder ont le droit d’uploder n’importe quel type de fichier.

Donc, certains fichiers svg pourraient contenir du contenu malicieux, puisque finalement dedans, c’est un fichier XML – un fichier XML peut contenir du code Ă  exĂ©cuter.

Tout ça pour dire que cette constante, si vous-mĂŞme vous la paramĂ©trez sur “faux”, vous interdisez instantanĂ©ment l’upload des fichiers non filtrĂ©s, donc ça, c’est assez intĂ©ressant.

VoilĂ  le genre de choses qu’on a.

On a un peu la mĂŞme chose avec le HTML.

disallow_unfiltered_html

Celle-là est un peu moins connue et parfois elle peut poser problème, donc attention à votre besoin.

Je vous la donne, elle s’appelle :

disallow_unfiltered_html

Donc celle-ci c’est une double nĂ©gation – dĂ©solĂ© pour ceux qui n’aiment pas la double nĂ©gation comme moi – c’est pour interdire le HTML non filtrĂ©.

Les administrateurs de WordPress, il faut le savoir, ont le droit de publier des contenus HTML non filtrĂ©s, c’est-Ă -dire que l’on peut…

C’est lĂ  oĂą le problème pour moi va arriver, c’est qu’on peut ajouter dans un contenu d’un article une balise script, une balise iframe et ça beaucoup de personnes le font, pourquoi ?

Parce que beaucoup de personnes publient du contenu avec un compte administrateur.

Je pense que ce n’est pas le bon rĂ´le : quand on est administrateur on administre, quand on est auteur, on crĂ©e du contenu et quand on est Ă©diteur aussi.

En fait, le fait de pouvoir ajouter des iframes laisse la possibilitĂ© Ă  d’autres iframes malicieuses d’ĂŞtre incluses dans des posts et ça, c’est moins bien.

La mĂŞme chose pour des balises script Ă©videmment, instantanĂ©ment c’est du JavaScript qui est lancĂ©, le JavaScript on peut faire des requĂŞtes ajax, distantes, inclure des publicitĂ©s, donc c’est relativement grave.

Un administrateur a les droits pour faire ça. Donc ça pour moi ce n’est pas normal, mais comme qu’il y a beaucoup de personnes qui le font, Ă  vous de le savoir.

Si vous avez besoin tout de mĂŞme de faire l’inclusion de scripts et de iframes, vous ne pourrez pas toucher Ă  cette constante, mais si vous estimez comme moi que c’est quelque chose qui ne doit pas ĂŞtre fait, je vous invite Ă  mettre la valeur “vraie” sur disallow_unfiltered_html

Si vous ĂŞtes dans le cas oĂą vous vous dites : “effectivement c’est pas sĂ©cure, mais j’en ai besoin”, ce qu’il faut faire, c’est transformer les balises iframes en shortcodes et les scripts en shortcodes, comme ça, seul le shortcode pourra ĂŞtre utilisĂ© dans le contenu de l’article et non plus directement une balise.

Alex : Et donc lĂ , tout passe dans l’article mĂŞme si on n’est pas administrateur.

Julio : VoilĂ  exactement, ça veut dire qu’on l’autorise d’une façon correcte, on pourrait très bien mĂŞme avoir une liste autorisĂ©e des sites web qui sont utilisables dans cette balise iframe.

Pour dire, attention, seuls YouTube, Vimeo… tout ce qui est vidĂ©o sont autorisĂ©s en iframes, le reste je refuse.

Parce que ce qui se passe c’est que, des contenus publicitaires venant d’autres sites peuvent ĂŞtre inclus aussi et c’est pour moi lĂ  oĂą arrive le danger en fait.

On peut encore en voir une autre.

disallow_file_edit

Celle-lĂ  elle est très très importante, je pense, c’est :

disallow_file_edit

Si vous allez dans le menu, vous avez extension ou apparence, et Ă  l’intĂ©rieur, vous avez Ă©diteur.

Cet Ă©diteur pour moi, c’est quelque chose qui n’est pas normal.

Si on veut Ă©diter du fichier PHP ou CSS, on doit Ă©diter via le FTP, d’accord…

Alex : Sur le serveur…

Julio : Le “F” de FTP ça veut dire fichier, alors que le HT ça veut dire hyper texte, donc si on Ă©dite du texte, très bien on est dans le WordPress => Administration.

Si on touche aux fichiers, alors on va sur le FTP. Dans ce cas-lĂ  on peut modifier les fichiers.

Le gros risque de laisser cet Ă©diteur, c’est qu’il peut ĂŞtre dĂ©tournĂ© pour modifier des fichiers PHP, pour inclure directement du contenu malicieux et lĂ , lĂ  c’est une horreur, lĂ  c’est vraiment très grave.

Il y a eu une faille, je crois, il y deux ans de cela en 2015, oĂą via un commentaire, ça a ajoutĂ© du JavaScript qui allait cliquer Ă  la place de l’administrateur dans cet Ă©diteur pour remplacer le contenu du plugin par dĂ©faut “Hello Dolly” par une porte dĂ©robĂ©e – une back door – qui validait ensuite ce fichier, “Hello Dolly” devenait une back door

C’est assez Ă©norme, j’ai un article lĂ -dessus sur SecuPress qui explique un peu comment ça s’est passĂ©.

Donc, si, simplement les gens avaient disallow_file_edit sur “true” (valeur vraie) personne ne pouvait se faire pirater, tous les gens qui n’avaient pas ça, on pu se faire pirater.

Alex : D’accord !

Julio : Vous voyez, juste par une ligne de code dans un wp-config, il est possible d’Ă©viter une vague de failles, c’est quand mĂŞme assez Ă©norme.

J’en ai d’autres, je pense qu’on va encore les ajouter en description.

Alex : Ouais ça marche… Allez, le petit carnet se referme !

le carnet secret du julio sur les constantes

Julio : Je le garde, c’est mon secret !

Alex : Vous retrouverez tout en description, il y a les morceaux de codes pour vous aider à y voir plus clair avec les différentes constantes du wp config.

Peut-être un petit mot sur le préfixe de base de données avant de repartir.

Julio : Allez, sur le préfixe de base de données en bonus.

Le prĂ©fixe de la base de donnĂ©es, comme on l’a dit dans une vidĂ©o prĂ©cĂ©dente, n’allez pas le modifier directement dans la base.

N’ouvrez pas phpMyAdmin pour aller dire, tiens je vais aller modifier mon prĂ©fixe.

Vous avez peut-ĂŞtre entendu dans des tutoriels, dans des vidĂ©os : il faut changer le prĂ©fixe de base de donnĂ©es pour ne pas que ce soit wp_ c’est-Ă -dire la valeur par dĂ©faut.

Ce qui manque dans ces vidĂ©os c’est le “pourquoi” : pourquoi est-ce qu’il faut le changer en fait ?

C’est relativement simple, il y a une faille qui s’appelle SQL injection, qui va donc permettre Ă  un attaquant d’injecter du code d’une requĂŞte de base de donnĂ©es quelque part chez vous.

Ce qui va lui permettre d’insĂ©rer des contenus ou de rĂ©cupĂ©rer des contenus.

Donc il peut très bien rĂ©cupĂ©rer les donnĂ©es clients. C’est quelque chose qu’il faut Ă©videmment Ă©viter.

Sauf que pour ça, il a besoin de connaĂ®tre le nom des tables et pour connaĂ®tre le nom des tables – il connaĂ®t les noms des tables parce qu’ils sont dans WordPress, mais il lui faut aussi le prĂ©fixe pour avoir le nom complet.

Par dĂ©faut, il va tester wp_ en espĂ©rant que personne ne l’ait changĂ©. Donc, si vous ĂŞtes dans ce cas lĂ , il y a un risque potentiel, si vous l’avez changĂ©, dès sa première requĂŞte, ça fonctionne plus, il ne va pas pouvoir continuer, il va très vite s’apercevoir que pour lui c’est terminĂ©, il s’arrĂŞte.

Donc changez-le, en sachant que vous le faites pour bloquer les possibles injections SQL.

Alex : OK ! Bon ben maintenant je pense que c’est clair !

Julio : Maintenant c’est clair.

Alex : SecuPress, ça fait ça, c’est ça ?

Julio : ça le fait aussi

Alex : Il y a des petits plugins qui font ça aussi tous seuls;

Formez-vous Ă  WordPress en 3 mois

Apprenez à concevoir des sites WordPress sécurisés, rapides et conformes aux obligations légales avec la formation à distance la plus généreuse du marché (éligible au CPF).

WPChef, la formation WordPress de référence

Pour conclure

Merci d’avoir suivi cette vidĂ©o, j’espère que votre wp config.php sera plus sĂ©curisĂ©.

En attendant, n’oubliez pas de vous abonner Ă  la chaĂ®ne YouTube de WPMarmite et de mettre des pouces bleus un petit peu partout…

Et puis allez voir sur secupress.me pour sécuriser davantage votre site.

Voilà, merci de nous avoir suivis et à très bientôt pour une prochaine vidéo.

Ciao ! Salut !

Vous voilà bien paré pour configurer aux petits oignons votre fichier wp-config