Comment sécuriser son site sous Wordpress ?
La sécurisation d’un site web est souvent avec la sauvegarde des données de ce même site, le cadet des soucis du webmaster et du bloggeur occasionnels. Ça n’arrive qu’aux autres, c’est ce qu’on se dit. Pourtant, c’est vital. Pour le site – en tout cas.
Un site hacké – par nonchalance ou pas – peut avoir des conséquences désastreuses. Vous pouvez perdre des données, être espionnés. Votre site peut servir pour une attaque, etc.
Tenir Wordpress à jour
Une installation à jour est la première et meilleure défense pour votre site. Votre first line of defense. Cela ne sert à rien de prendre d’autres mesures de sécurité si votre site n’est pas à jour. Il est parfois étonnant de voir les webmasters si rétifs à mettre à jour leur site. Que ce soit par ignorance, indifférence ou nonchalance. Ou encore de les voir tenir un discours anti-mise à jour pour assurer la stabilité de leur site. Pourtant les mises à jour de Wordpress provoquent rarement des problèmes et avec les bons outils sont relativement simples à installer.
La plus grosse complainte concernant la mise à jour de wordpress est la lourdeur de la procédure (télécharger le fichier, dézipper, uploder…). Il existe cependant 2 plugins pour mettre à jour en quelques cliques son installation de Wordpress. Nous utilisons le premier.
Pour se tenir informer des mises à jour de Wordpress, abonnez-vous au flux RSS du blog développeur de Wordpress. Vous pouvez aussi suivre la mailing list WP-Hackers. Accessible par google groups.
Pour être tenu informé des failles de sécurité non encore résolues, surveillez Secunia.
Configurer, optimiser et vivre avec Wordpress
Lors de son installation Wordpress génère un mot de passe trop simple et un login que tout le monde connaît (admin). Pensez donc à choisir un meilleur mot de passe pour votre compte administrateur.
Empêchez aussi de nouveaux utilisateurs de s’enregistrer si vous n’utilisez pas cette fonctionnalité. Dans les options générales, décochez :
Désactivez et, mieux, effacez les plugins que vous n’utilisez pas. Cela ne sert à rien d’avoir des plugins qui traînent, ne servent là encore à rien, ralentissent votre système et qui contiennent peut-être des failles de sécurité.
Dans le même sens, évitez d’installer des plugins peu entretenus ou trop vieux. Pour mieux comprendre pourquoi, vous pouvez livre la traduction de cet article : Wordpress: List of plugins not recommended / Wordpress : Liste des plugins non-recommandés
Stealth mode
Un autre moyen de se protéger est de passer inaperçu. C’est-à-dire de ne pas rendre évident que votre site est sous Wordpress. Si un hacker mal-intentionné cherche une vulnérabilité contenue dans une certaine version de Wordpress, il peut optimiser ses recherches en ciblant spécifiquement des sites qui tournent sous cette version de Wordpress. Enlever toute référence à Wordpress ou son numéro de version peut être intéressant. Mais bon c’est juste un truc.
La référence principale se trouve dans le fichier header (header.php) de votre thème. En ce qui concerne le numéro de version, c’est le code
<meta name=”generator” content=”WordPress <?php bloginfo('version'); ?>″ />
Si vous voulez juste enlever la version, supprimez <?php bloginfo('version'); ?>
Ensuite selon les thèmes, il peut y avoir d’autre références dans le footer ou dans les flux rss.
En personnalisant vos pages d’erreurs, vous pouvez enlever les erreurs de bases de données qui révèlent parfois des informations qui devraient rester privées. La dernière version de Wordpress – 2.3.2 – permet de générer des pages d’erreurs personnalisées pour les bases de données. Il faut créer un fichier db-error.php dans le dossier wp-content. Vous pouvez bien sûr mettre ce que vous voulez dans ce fichier, une sitemap par exemple ou encore une présentation de votre site avec un message d’explication de l’erreur.
Secure WordPress
Secure WordPress/ est un plugin qui permet d’effectuer la plupart de ces tâches automatiquement.
removes error-information on login-page
adds index.html to plugin-directory (virtual)
removes the wp-version, except in admin-area
removes Really Simple Discovery
removes Windows Live Writer
Semisecure Login Reimagined
Si vous accédez à votre interface d’administration en clair, c’est-à-dire sans passer par une adresse https, votre mot de passe Wordpress n’est pas crypté. Votre site est donc vulnérable.
La meilleure solution pour combler cette lacune consiste donc à récupérer un certificat SSL pour son site mais si cela s’avère trop compliqué (hébergement mutualisé…) ou trop cher, Semisecure Login Reimagined est un plugin qui pourra faire office de cryptage SSL. Enfin, un ersatz.
htaccess
Un très bon moyen de protéger votre dossier administration est de créer un fichier htaccess. Ce fichier htaccess vous permettra de restreindre l’accès à votre dossier administration soit par un mot de passe soit par une IP ou plusieurs. Pour restreindre l’accès à une seule IP, il suffit de créer un fichier .htaccess dans le dossier /wp-admin. Ce fichier contenant le code suivant (en changeant bien sûr l’adresse IP ):
Order Deny,Allow
Deny from all
Allow from 12.345.675.890
Pour protéger un fichier en particulier :
<Files "wp-login.php">
Deny from all
Allow from 12.345.675.890
</Files>
Pour en savoir plus sur les fichiers htaccess, vous pouvez lire ce guide.
Attributs des fichiers et des dossiers : 777, 755, 644 etc..
Il est important aussi que vos dossiers et certains fichiers aient les bons attributs ou permissions. Ces permissions permettent au serveur d’interdire ou de permettre l’exécution ou l’accès des fichiers et des dossiers. Elles peuvent être changées avec votre logiciel FTP en faisant un click droit sur le fichier. Avec le logiciel Filezilla, cela donne :
On a l’habitude d’associer à ces permissions des chiffres. ((000 Aucune permission
400 Lecture pour le propriétaire du dossier
200 Ecriture pour le propriétaire du dossier
100 Exécution pour le propriétaire du dossier
600 Lecture et écriture pour le propriétaire du dossier
700 Lecture, écriture, exécution pour le propriétaire du dossier
etc…))
En général, on conseille de mettre les fichiers à 644 et les dossiers à 755. Il est toujours possible d’être plus agressif mais votre site risque de ne pas marcher. Avoir des dossiers à 777 est dangereux. Juste un rappel en passant, le protocole FTP n’est pas un protocole sécurisé. Alors utilisez SSH, si vous pouvez.
Des liens pour aller plus loins et revenir
BlogSecurity’s WordPress BlogWatch permet de suivre les dernières failles de sécurité liées à Wordpress.
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

17 March 2008 à 9:11 pm
[...] plugin est le complément parfait de Wordpress Automatic Upgrade. Dans l’article consacré à la sécurisation de Wordpress nous vous avions parlé de ce plugin qui met à jour votre installation de [...]