Renforcer la sécurité de WordPress

lagerfeld-et-le-gilet-jaune

Voici quelques idées et conseils pour améliorer la sécurité de son blog sous WordPress.

Au moment où un script qui tente de craquer les codes de l’admin de WordPress se balade (voir cet article de Bojan Zdrnja) dans la nature et alors que pas mal de mes installations ont été victimes d’attaques ces derniers mois, je crois que cet effort de  sécurisation n’est pas du luxe.

Cet article s’inspire de cet autre publié sur blogsecurity.

Avertissement : il se peut que ces méthodes altèrent le fonctionnement de certains plugins et thème. Faites vos tests…

Ce petit guide va vous permettre de vous protéger de bien des attaques et en particulier les attaques en force brute, le recensement de vos plugins, l’affichage de vos répertoires, le dévoilement d’information sensibles et les failles des inclusion de fichiers. Il existe aussi d’autres méthodes de renforcement de la sécurité. Ce guide n’est pas complet.

Note importante : faites un backup de votre base de données et de votre répertoire FTP avant de modifier quoi que ce soit.

Étape 1 : limiter l’accès à wp-content et wp-includes

En utilisant les directives <files> de htaccess nous pouvons restreindre l’accès au fichiers autres que les images, les CSS et le Javascript. Ajoutez les lignes suivantes à votre fichier .htaccess :

Order Allow,Deny
Deny from all
<Files ~ "\.(css|jpe?g|png|gif|js)$">
 Allow from all
</Files>

Si vous voulez autoriser certains plugins (Democracy dans l’exemple ci dessous) vous pouvez ajouter ce type de lignes au fichier .htaccess à mettre dans le répertoire wp-content :

<Files "democracy.php">
 Allow from all
</Files>

Mettez cela dans un fichier .htaccess que vous devrez créer dans vos répertoire wp-content et wp-includes.

Etape 2 : Restreindre l’accès à wp-admin

Maintenant, pour restreindre l’accès au répertoire wp-admin, vous avez 2 possibilités. Soit une protection par IP (nécessite que vous soyez toujours derrière cette IP fixe) soit une protection par mot de passe

Protection par IP :

order deny,allow
allow from a.b.c.d # Ceci est votre IP statique
deny from all

Le code ci dessus empêche tous les navigateurs d’accéder à n’importe quel fichier dans ces répertoires sauf s’il a l’IP « a.b.c.d » que vous devrez changer avec votre propre adresse IP.

Protéger avec un mot de passe :

Je ne vais pas en parler ici, pour protéger l’accès avec un mot de passe , vous pouvez faire une recherche dans Google du genre ‘WordPress htpasswd » ou  consulter ce livre blanc pour sécuriser WordPress (en Anglais).


Tags :
Trackbacks Commentaires
  • mtax dit :

    Intéressant. Mais pourquoi pas chmoder directement? C’est moins sûr?

    • Pakito dit :

      Parce que si tu Chmode les répertoires comme wp-upload, t’es foutu pour l’envoie d’images sur ton blog.

      Idem pour le « allow from ip fixe, deny from all ». Ceci nécessite d’avoir une ip fixe, et dans le cadre d’un blog multi contributeur, ça devient vite très compliqué.

      Mais j’ai entendu parler il y a peu d’un plug in qui limite le nombre de tentative de log par ip et par heure. Tout est configurable dans le panneau d’admin et les ip qui se plantent de mot de passe sont enregistrées dans la bdd.

      J’avais découvert ça sur Websourcing : http://blog.websourcing.fr/wordpress-login-lockdown-protegez-votre-blog-des-hackers

  • mtax dit :

    Ca c’est cool, il me le faut! Merci beaucoup pour l’info! :)

  • Steph dit :

    Salut,

    Sur le sujet: peut on sécuriser la page de connexion wp, en mode SSL?
    histoire de ne pas se faire hacké son pass

    merci
    (merci de m’envoyer un mail si réponse et si le blog ne le fait pas automatiquement)

  • Céline dit :

    Je suis toute nouvelle utilisatrice de wordpress depuis quelques mois, et j’ai été victime d’un hack. Et avant de tout remettre je me renseigne sur la manière de rendre celui-ci un peu plus sur à l’avenir. Tombée sur votre blog, j’aimerai plus de détail par mail sur la partie protéger par mot de passe.
    Merci d’avance
    Bonnes fêtes

  • Y dit :

    Bonjour,

    Tout d’abord merci beaucoup pour cette mine d’infos qu’est ce site :) je ne m’en serai pas sorti sans! Je suis entrain de travailler sur un projet de webzine, et compte me mettre sous wordpress, cependant certaines choses m’échappes quand à la sécurité. J’ai installé certains plugin que vous recommandez. Et les ai insérés dans la liste que j’ai créé dans .htaccess cependant après avoir créé ce fichier, mon blog apparait tout blanc comme si aucun css n’existait. Je l’ai supprimé et tout est revenu à la normale. Premier petit problème. Le second c’est une question, pour la protection du fichier wp-admin.php par adresse ip le texte que vous donnez il faut également l’insérer dans le fichier .htaccess? Ne faut-il pas indiquer que cette action se limite au fichier wp-admin.php? Et si cela est possible, pourquoi ne pas ajouter à ce fichier, chaque IP pour chacuns des admin? Ou est-ce que les simples inscrits passent également par ce fichier?

    Cordialement.

    Y

  • hankafoushe dit :

    salut
    merci de votre conseil
    je voudrai savoir le code exact pour faire just mon IP qui rejoint
    à l’adminstraeur comme dans cet exemple

    order deny,allow
    allow from a.b.c.d # Ceci est votre IP statique
    deny from all

    merci d’avance

  • Lexa dit :

    Ce qui est pas mal également, c’est de bien régler son fichier robots.txt histoire que ce soit pas la pagaille en bloquant l’accès aux répertoires inutiles au référencement.

    Certains bots ne sont pas tous de « gentils moteurs de recherche »

  • Bubu dit :

    Salut,
    Je voudrais juste apporter une petite précision. Quitte à être dans la sécu, les lignes suivantes ont une importance. Écrire :

    order deny,allow
    allow from a.b.c.d # Ceci est votre IP statique
    deny from all

    N’est pas faut, et fonctionne bien :-) Mais comme ceci :

    order allow,deny
    allow from a.b.c.d # Ceci est votre IP statique
    deny from all

    C’est mieux. Apache teste les conditions dans l’ordre, et prend sa décision finale en fonction du denier test. Donc dans le premier cas, si il n’arrive pas à une correspondance il autorise quand même le passage (puisque non explicitement interdit par deny). Tant dit que dans le second cas, si il n’arrive pas à faire une correspondance il rejette la requête (deny en dernier test). Et a mon avis c’est plus sécure de refuser en cas de doute ;-)

  • Sympa les quelques points de sécurité que tu donnes.
    J’avais aussi fait un article sur le sujet. J’ai saisi l’occasion suite à un piratage (personne n’est à l’abri :( ) pour le rédiger, du coup j’ai quelques captures de scripts de hack encodés. Cela permettra de vous donner une idée de ce à quoi ça ressemble.

  • Learn What You Enjoy
    Learning anything, but especially a new language, should be fun! It’s also easier to retain

    information if it’s both enjoyable and practical. Learn Spanish easily by starting with

    words and phrases that are applicable to the activities you enjoy regularly, like eating out

    at restaurants, shopping or even flirting with your boyfriend! Since a noun is the easiest

    type of word to learn, because it can be illustrated with a simple picture, start there. For

    example, at a restaurant you might want to say – chicken, – salad or – water; when shopping

    - size, – fitting room or – shoes will come in handy; and surprising your boyfriend with –

    hug, – date or – handsome fellow is likely to make you remember those words. Once you’ve

    learned some basic nouns, then add verbs, such as – eat, – shop or – kiss and you’re well on

    your way to forming simple phrases.

  • Simple Investments to Learn Spanish Easily
    Before you spend good money on a full semester of class or a private tutor, go to your local

    bookstore and purchase a Spanish phrasebook from Berlitz or Lonely Planet. These little

    books cover all the basics in easy to access categories such as Dining Out, Socializing, and

    Dates and Times, and they provide simple pronunciation keys for every word.
    You may also want to buy a simple Conversational Spanish DVD or tape set to listen to in

    your car. This method gets you accustomed to hearing the language and allows you to practice

    in privacy.
    Learning Spanish is easy, so don’t be afraid to have fun with it! And remember that the best

    way to learn anything is to practice frequently but in short sessions so you don’t become

    overwhelmed.

  • a3alphabio dit :

    Learning Spanish is easy, so don’t be afraid to have fun with it! And remember that the best

    way to learn anything is to practice frequently but in short sessions so you don’t become

    overwhelmed. Discover how to Learn Conversational Spanish at

    http://www.learnconversationalspanish.org/ and have fun with it.

Réagissez