10 manières de protéger votre WordPress – Partie 1

WordPress, le script de blog le plus utilisé, est aussi naturellement le plus sujet aux attaques. Rien de plus normal que de se renseigner sur sa sécurité.
Donc, après avoir accumulé quelques connaissances sur WordPress et sur sa sécurisation, il est normal que je vous fasse désormais partager moi aussi ce que je sais.

Dans cette première partie, nous allons d'abord voir le .htaccess, robots.txt, CHMOD...

1 - Mettre à jour
Avant tout, il faut mettre WordPress à jour ainsi que ses plugins et son thème.

2 - Avoir un mot de passe fort
N'hésitez pas à le changer périodiquement. Générateur de mot de passe online.

3 - Le .htaccess
A la racine de votre serveur, uploadez un fichier nommer .htaccess et notez ce qui suit.

# Empecher de lire ou accéder au fichier .htaccess
<files .htaccess>
order allow,deny
deny from all
</files>
# Empecher de lire ou accéder au fichier wp-config.php
<Files wp-config.php>
Order Allow,Deny
Deny from All
</Files>
# Au lieu de mettre un index.html dans chaque dossier que vous ne pas rendre visible mettez cette ligne
Options All -Indexes
# Désactive la signature du serveur
ServerSignature Off
# Empêche les attaques DDOS
LimitRequestBody 10240000
# Un hôte qui tente de se cacher dans une reverse DNS lookup
RewriteCond %{REMOTE_HOST} ^private$ [NC,OR]
# Un faux referrer souvent utilisé
RewriteCond %{HTTP_USER_AGENT} ^[^?]*iaea.org [NC,OR]
# Le referrer "addresses.com" est utilisé par un email address extractor
RewriteCond %{HTTP_USER_AGENT} ^[^?]*addresses.com [NC,OR]
# Bloque les navigateurs se dissimulants avec des lettres et chiffres aléatoires
RewriteCond %{HTTP_USER_AGENT} [0-9A-Za-z]{15,} [OR]
RewriteCond %{HTTP_USER_AGENT} ^[0-9A-Za-z]+$ [OR]


4 - Le robots.txt

Le robots.txt est utile pour éviter le duplicate content et éviter que les moteurs de recherche n'indexe des fichiers sensibles de WordPress comme wp-config.php, les dossiers wp-admin etc...
Placez le également à la racine du site.

Sitemap: http://www.nomdedomaine.tld/sitemap.xml

User-agent: *
Disallow: /wp-content/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-
Disallow: /feed
Disallow: /comments/feed
Disallow: /feed/$
Disallow: /*/feed/$
Disallow: /*/feed/rss/$
Disallow: /*/trackback/$
Disallow: /*/*/feed/$
Disallow: /*/*/feed/rss/$
Disallow: /*/*/trackback/$
Disallow: /*/*/*/feed/$
Disallow: /*/*/*/feed/rss/$
Disallow: /*/*/*/trackback/$
Disallow: /trackback/
Disallow: /cgi-bin/
Allow: /wp-sitemap.php

User-agent: Googlebot
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.cgi$
Disallow: /*.xhtml$
Disallow: /*.php*
Disallow: */trackback*
Disallow: /*?*
Disallow: /wp-*
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.txt$
Allow: /images/
Allow: /wp-sitemap.php

User-agent: Googlebot-Image
Disallow:
Allow: /*

Ce fichier est à modifier selon la configuration de votre installation.

5 - Les CHMOD
Via votre votre client FTP, changer les CHMOD des différents dossiers et fichiers sur le serveur.
Mettez tous les fichiers en 604 et tous les dossiers en 705 s'ils nécessitent des droits d'écriture. Sinon les fichiers seront en 404 et les dossiers en 505.
Inutile de faire le 777 qui donne les droits à tout le monde.
Ex : Les fichiers wp-config.php et .htaccess ont des droits 404.

La suite ici, 10 manières de protéger votre WordPress - Partie 2

Related posts:

  1. Protegez votre WordPress
  2. Testez la sécurité de votre WordPress
  3. Migration de DotClear à WordPress
  4. Customisez votre page login WordPress
  5. WordPress 2.5 en version finale disponible
Ce contenu a été publié dans Wordpress. Vous pouvez le mettre en favoris avec ce permalien.

20 réponses à 10 manières de protéger votre WordPress – Partie 1

  1. Ping : Nicofayet sur Blogasty

  2. KroKro dit :

    Merci bien pour ses infos précieuse .

    Tu ma fait gagner bien du temp !

    Bonne continuation .

    KroKro

  3. nmnoumea dit :

    Merci, en effet ont ne connais jamais suffisamment le htaccess, je l'utilise souvent et découvre de nouvelles optios régulièrement sur des sites tel que le tiens.
    Encore merci pour le partage des connaissance, à mon avis qui devrait être le fondement des Informaticiens.

  4. Olivier dit :

    Bonjour

    je viens d'éditer mon fichier htacces et je n'avais pour l'instant que :

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]

    # END WordPress

    + ensuite ces deux lignes que j'avais rajouté par rapport à mes problèmes chez 1&1 :

    AddType x-mapp-php5 .php

    AddHandler x-mapp-php5 .php

    N'y connaissant rien, est que je laisse ce qui était déja présent ? Est ceq u'il faut que toutes les instructions soient entre BEGIN et END WP que je viens de voir aujourd'hui ?

    Merci olivier

  5. Bonjour Olivier,
    Oui il faut laisser les instructions déjà existantes.
    Ensuite, ces instructions ne sont pas à l'intérieur de # BEGIN/END WordPress. Ca sert juste à indiquer que ces instructions proviennent de WordPress.

  6. Olivier dit :

    Merci pour la réponse. Sinon, du coup, autre question. En fait, mon fichier htacces se trouve dans le répertoire WP. Or mon index genéral (je sais pas si on peut dire ca) est au dessus. C'est mon site (qui n'est pas sous WP) mais qui est fait en html et css. faut il aussi un htacces pour lui ?

    Olivier

    • Pas besoin du meme htaccess pour le site en html.
      Vu qu'il se trouve à la racine, je conseille de mettre :

      order allow,deny
      deny from all

      Options -Indexes

      ServerSignature Off

      LimitRequestBody 10240000

      RewriteCond %{REMOTE_HOST} ^private$ [NC,OR]

      RewriteCond %{HTTP_USER_AGENT} ^[^?]*iaea.org [NC,OR]

      RewriteCond %{HTTP_USER_AGENT} ^[^?]*addresses.com [NC,OR]

      RewriteCond %{HTTP_USER_AGENT} [0-9A-Za-z]{15,} [OR]
      RewriteCond %{HTTP_USER_AGENT} ^[0-9A-Za-z]+$ [OR]

      comme ca, ca le fait pour tout le serveur et pas seulement le dossier wordpress. Donc tu pourras enlever ces instructions dans le htaccess du dossier wordpress.

  7. olivier dit :

    Y'aurait il d'autres choses à mettre dans ce fichier htacces pendant que j'y suis. Car je ne comprend pas très bien ce que j'y met mais si c'est pour mieux sécuriser, autant bien le faire.

    en tout cas, j'ai hâte de voir la prochaine partie :)

  8. C'est tout ce que j'ai mis pour ma part. Je pense qu'avec ca c'est déjà très bien.

    La suite va arriver... :)

  9. Ping : Plugins et astuces pour sécuriser et optimiser WordPress | Job Alternative

  10. Ping : 10 manières de protéger votre WordPress – Partie 2 | NicoFayet, le blog

  11. Ping : 15 règles pour sécuriser WordPress | Emmanuel GEORJON

  12. Ping : Les bons liens Wordpress

  13. steph dit :

    Bonjour.

    Des que je met un .htaccess que cela soit dans mon repertoire WP ou "Pas besoin du meme htaccess pour le site en html.
    Vu qu'il se trouve à la racine, je conseille de mettre"

    J 'ai une erreur. ca plante le site!

    Pouvez vous me filer un coup de main?

    Merci. Steph

  14. Peux tu montrer ton htaccess?

  15. Ping : 10 manières de protéger votre WordPress – Partie 1 | NicoFayet, le blog

  16. Article intéressant. J'ajoute que les utilisateurs de WordPress peuvent utiliser Platinum SEO ou All in One SEO, des plugins qui permettent de ne pas autoriser l'accès aux flux RSS, tags, archives, etc.

    Concernant les fichiers wp-xxxxxx, ce n'est pas une obligation de les mentionner dans les fichiers robots.txt et .htaccess

    Pour empêcher que le serveur Apache liste vos dossiers et sous répertoires, il faut ajouter ce code dans le .htaccess : Options -Indexes

    (interdit le listage de tous les sous-répertoires)

  17. SLT-A65 dit :

    Exactement là où je pourrais trouver cette plateforme Weblog particulier?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>