Accueil » Le Point SĂ©cu » 🛡 Point SECU #18 : Comment sĂ©curiser le fichier wp-config de WordPress ?

VidĂ©o : 🛡 Point SECU #18 : Comment sĂ©curiser le fichier wp-config de WordPress ?



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 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… en majuscules la plupart du temps c’est vrai.

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Ă©.

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, c’est 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.

Une autre constante moins connue

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 que, 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.

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

disallow_file_edit

Si vous allez dans les contenus… dans le menu pardon, vous avez plugin ou apparence, extension ou apparence pardon, 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 (je vous le mettrais en description) 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;

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 inscrire Ă  la newsletter…

En attendant, n’oubliez pas de vous abonner Ă  la chaĂźne YouTube de la Marmite 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



Si vous avez apprécié cet article, inscrivez-vous à la newsletter

Recevez gratuitement les prochains articles et accédez à des ressources exclusives. Plus de 20 000 personnes l'ont fait, pourquoi pas vous ?

C'est parti, je m'inscris !

velit, Lorem ut sit mi, leo justo Praesent libero tempus vulputate, felis
Partagez
Tweetez
Partagez