Sécuriser WordPress en 11 étapes 23

Depuis quelques temps mes différents sites sont régulièrement victimes d’attaques afin de prendre le contrôle de mes comptes admin.
Pour l’instant je croise les doigts je n’ai pas subi de préjudices trop graves, mais autant partager avec vous quelques astuces pour sécuriser vous aussi votre blog.
Je ne suis clairement pas un expert du sujet, donc n’hésitez pas à compléter cet article via les commentaires !
Mettez à jour votre installation et vos plug-ins
On ne vous le dira jamais assez, mettez tout à jour dès qu’une nouvelle version de WordPress ou de vos plug-ins est disponible.
Ces mises à jour résolvent souvent des failles de sécurité…
Masquez votre compte administrateur
Lors de l’installation de votre site ne choisissez ni admin comme nom de compte ni votre prénom ou votre nom de famille. Ces comptes sont les premiers qui seront testé par les hackers !
S’il est trop tard pour cela vous pouvez changer le nom de votre compte via phpMyAdmin ou par l’intermédiaire de plugins mais je vous conseille plutôt de :
- créer un nouvel utilisateur admin
- supprimer votre premier compte admin
- et transférer vos articles sur ce nouveau compte
Rassurez-vous ces options sont très bien expliquées lors de la suppression d’un compte.
Pourquoi faire cela ?
Tout simplement parce qu’il est possible de découvrir assez facilement le login de votre premier utilisateur (ici l’admin) en détournant l’utilisation la chaîne author=1.
Seulement il ne faut pas s’arrêter là car votre login admin peut encore être retrouvé en analysant … vos commentaires !
En effet WordPress va rajouter automatiquement une classe comment-author-votrelogin à chacun de vos commentaires… Ballot non ?
Pour éviter cela il vous suffit d’intégrer le petit hack suivant dans le fichier functions.php de votre thème :
function remove_comment_author_class( $classes ) {
foreach( $classes as $key => $class ) {
if(strstr($class, "comment-author-")) {
unset( $classes[$key] );
}
}
return $classes;
}
add_filter( 'comment_class' , 'remove_comment_author_class' );
Ce n’est pas fini ! Car votre login apparait aussi dans la balise <dc:creator> qui se trouve dans votre flux RSS.
Manque de bol il n’existe pas de hack pour l’enlever proprement…
Vous allez donc devoir procéder en 3 étapes :
- Copier le fichier /wp-includes/feed-rss2.php dans le répertoire de votre thème
- Editez-le et remplacez la balise <dc:creator><?php the_author() ?></dc:creator> par ce que vous voulez
Exemple : <dc:creator><?php echo site_url(); ?></dc:creator> - Rajoutez le code suivant dans votre fichier functions.php :
function create_my_custom_feed() {
load_template( TEMPLATEPATH . '/feed-rss2.php');
}
add_feed('rss2', 'create_my_custom_feed');
Et voilà !
Bonne chance pour trouver votre login de connexion maintenant
Cryptez mieux votre mot de passe
C’est évident mais je le rappelle quand même : n’utilisez pas votre login, votre prénom ou tout mot de passe qui serait facile à deviner.
Idéalement mettez-y des caractères spéciaux des chiffres, des majuscules, des minuscules, etc.
Par défaut les mots de passe WordPress sont encryptés en MD5, et donc « relativement » faciles à cracker.
Semisecure Login Reimagined remplace ce cryptage par un la combinaison plus solide d’une clé publique et d’une clé privée d’encryption.
Télécharger le plugin : Semisecure Login Reimagined
Limitez les tentatives de connexion infructueuses
User Locker permet de limiter le nombre de tentatives de connexion avant de bloquer un compte.
Dès qu’un compte est bloqué, il ne peut être débloqué qu’en faisant une demande de nouveau mot de passe !
Les attaques en force brute sont donc impossibles
Télécharger le plugin : User Locker
Rajoutez une clef supplémentaire à votre installation WordPress
Lors de votre installation WordPress il y a fort à parier que vous n’avez pas changé votre clef secrète, utilisée notamment pour encrypter vos connexions à votre base de données SQL .
Qu’à cela ne tienne, ça se corrige facilement !
Cliquez sur ce lien : Génération d’une clef privée WordPress
Copiez les 4 lignes qui devraient ressembler à cela :
define('AUTH_KEY', '[tCP...');
define('SECURE_AUTH_KEY', 'fEwx...');
define('LOGGED_IN_KEY', 'p8Ky...');
define('NONCE_KEY', '7Kl*...');
Et collez les dans votre fichier wp-config.php
Masquez votre version de WordPress
Il existe des plug-ins mais autant rajouter ces quelques lignes dans votre fichier functions.php :
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action('wp_head', 'wp_dlmp_l10n_style' );
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
Oui je sais ... je ne masque pas que la version mais le reste ne sert à rien non plus
Supprimez également le fichier readme.html qui se trouve à la racine de votre installation et qui contient ... le numéro de votre version WP installée.
Protégez vos répertoires
Un des soucis de WordPress c'est que le CMS est open-source et très connu.
Par conséquent n'importe qui peut le télécharger et découvrir en 5 minutes l'architecture de votre site, et parfois ses failles...
Pour une raison que je ne comprends pas la plupart des répertoires ne sont pas protégés en lecture.
Dans le répertoire racine de votre blog se trouve le fichier .htaccess qui définit certaines règles de sécurité ainsi que les règles d'URL rewriting.
Rajoutez au début du fichier les ligne suivantes :
<Files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files> <files wp-config.php> order allow,deny deny from all </files> Options -Indexes ServerSignature Off
Les 2 premiers blocs limitent les accès à vos fichiers .htaccess et wp-config.php (où se trouvent EN CLAIR vos login/password de connexion à votre Base de données).
Les 2 dernières lignes protègent en lecture les répertoires et masquent la signature de votre serveur Apache.
Pour rajouter une protection à vos différents répertoires en lecture, créez ensuite un fichier vide nommé index.php, et copiez le dans les répertoires suivants :
- /wp-content/
- /wp-content/plugins/
- /wp-content/uploads/
Supprimez des plug-ins
Les plug-ins sont parfois truffés de failles de sécurité.
Pour vous en convaincre, allez faire un tour chez le spécialiste du sujet, j’ai nommé Julio Potier le webmaster de Boite a Web.
Donc autant que possible limitez le nombre de plug-ins installés et dès que vous en désactivez un SUPPRIMEZ LE !
Car même inactifs certains plug-ins mal codés peuvent fragiliser votre installation …
Masquez le nom de votre thème
Tout comme les plug-ins, certains thèmes présentent des failles de sécurité.
Histoire de brouiller les pistes :
- Modifiez le nom du répertoire de votre thème
- Ouvrez le fichier styles.css de votre thème et changez le bloc suivant avec ce que vous voulez :
/* Theme Name: mon-thème 1.0 Theme URI: http://adresse-de-mon-theme Description: ah bah ... Version: 1.0 Author: Moiiiii Author URI: http://adresse-de-l-auteur */
Seul petit inconvénient : vous devrez faire d’éventuelles mises à jour de ce thème « à la main ».
Installez Cloudflare
Bon là on passe à un autre sujet … Je n’aborderai pas ici la question des performances (minification à la volée, semi-CDN, chargement JS asychrone, etc.) que propose Cloudflare, ni même son intégration au projet Honey Pot qui permet d’arrêter les spammeurs (I loooooooove Cloudflare).
Mais je vous dirais juste ceci : en passant par Cloudflare comme CDN gratuit vous affichez au spammers et hackers les DNS de Cloudlfare, et vous serez donc protégés des attaques DDoS ainsi que de certaines injections SQL malicieuses
Pour installer Cloudflare rendez-vous ici : https://www.cloudflare.com
Histoire de faire ceinture et bretelle j’ai également installé le plug-in Bad Behavior même si je pense que ça devient pour le coup complètement inutile (vos avis sont les bienvenus d’ailleurs).
Verifiez que vous êtes bien protégés
Installez le plug-in WP Security Scan, suivez les indications proposées, puis supprimez le plug-in
Vous pouvez aller encore un cran plus loin en installant 6Scan Security, BulletProof Security ou AskApache Password Protect mais mal utilisés ces plug-ins ont vite fait de mettre la grouille dans votre install… donc prenez vos précautions !
Et vous ? Vous ajouteriez quoi comme mesure efficace de sécurité ?







Merci pour ces infos
A noter aussi qu’il y a moyen d’utiliser un login mais d’avoir un alias qui permet d’afficher un autre nom que ce login sur le blog dans les commentaires par exemple.
Je ne connaissais pas, de quel plug-in s’agit-il ?
Hello Fabien,
Merci pour ces infos, c’est vrai que la sécurité d’un site comme WordPress est assez importante. Et tes solutions ont le mérite d’être facile à mettre en place.
J’ai plusieurs sites qui utilisent wordpress, je vais donc me pencher sur leur sécurité mais ce que tu ne précises pas, c’est ce qui se passe lors des mises à jour, il faut donc que tu répètes les modifications dans functions par exemple à chaque fois ?
Rien a faire lors des mises à jour
On le dit souvent, mais personne n’écoute… on commence par choisir un vrai mot de passe ! Et surtout pas le prénom du petit dernier
J’ajouterai à tous ces conseils un peu pointus le fait de prendre soin de bien faire toutes les mises à jours des thèmes, des plugins et du wordpress lui-même… Je me suis déjà fait avoir sur des sites que je suivais peu, en passant à côté de a rectification d’une faille sur un plugin..
C’est vrai mais bon c’est tellement évident et répété partout comme conseil que je ne l’ai pas ajouté
Des petits conseils bien pratique pour limiter la casse sur WordPress, par contre cacher la version de WordPress est un peu inutile car la version est un partout dans WordPress, comme par exemple dans le feed et le readme.html à la racine …
Très bonne remarque j’ai ajouté ce conseil à l’article !
Merci
Salut Fabien,
un petit détail que tu as oublié(à mon sens), faire une redirection https du wp-login avec double authentification via un .htaccess
Après tout mettre sur cloudflare doit être une sérieuse bonne idée, il me semble que korben à fait la même chose…
J’ai eu qq soucis quand j’ai voulu passe en https. En soi c’est une bonne idée mais c’est pas ultra simple a faire malgré les apparences. Je suis sur Cloudflare depuis 1 an sur tous mes sites et ça ne résout pas tout mais ça rend bien service c clair
Je reste perplexe sur Cloudfare, j’ai été déçu par les coupures intempestives, tu penses que c’est un problème sur ton site mais en faite c’est le CDN qui merdouille avec certaines pages . Tu constate pas ce cas de figure ?
J’ai eu BEAUCOUP DE MAL à configurer correctement Cloudflare avec pas mal de soucis au début.
Par contre depuis que j’ai les bons réglages c’est le bonheur.
Je n’ai eu qu’une fois un souci et j’ai du supprimer recréer un site sur le service. A part cet incident c’est que du bonheur :p
Je n’ai pas vu « Mettre wordpress à jour », ce qui pour moi est quand même la première chose à faire!
C’est tellement évident … mais je l’ai rajouté merci
Je rajouterais : implémenter la double authentification avec l’excellent plugin Google Authenticator.
Cela réduit très grandement les chances de hacks et d’attaque type Man In The Middle si on accède au backoffice de son blog depuis des connexions peu sécurisées.
A+
Nico
Ces conseils serviront bien vu le nombre de hack visant les sites wordpress. J’ai personnellement choisi d’installer better wp security qui corrige pas mal de « failles » de wordpress.
Etant donné qu’énormément d’ordinateurs sont infectés par des virus, je conseillerais également de ne jamais se connecter à wordpress depuis un ordinateur public et de mettre en place une connexion SSL à l’admin. Je compte le faire mais ça prend pas mal de temps.
A un moment j’avais voulu installer cloudflare mais ne l’avait pas fait après avoir lu que c’est une véritable passoire d’un point de vu sécurité. Du coup je compte installer incapsula à la place.L’article en question se trouve ici :
http://www.ehackingnews.com/2012/11/incapsula-vs-cloudflare-security-review.html
Un bon article complémentaire à celui que j’avais rédigé il y a quelque temps. Tu donnes d’ailleurs certains points que je n’évoque pas.
Il faut aussi faire attention au thème payants de base retrouvés gratuitement sur des sites plutôt louche car ils peuvent contenir des codes malicieux. Dans ces cas là, j’utilise le module Theme Authenticity Checker (TAC) qui fonctionne très bien.
rci pour tous ces conseils avisés. je ne manquerai pas de suivre vos recommandations dès que j’aurai un peu de temps devant moi pour le réaliser. A bientôt pour d’autres astuces
Liz de http://www.mutuelles.org/
Merci pour ces astuces, bien utile !
Les mises a jour peuvent parfois causer plus de problemes qu’elles en corrigent, mais certaines mises a jour concernant la securite meritent d’etre attentivement considerees avant de refuser de ne pas les faire.
Merci pour ce billet fort utile. Si vous trouvez d’autres trucs du genre, je serais intéressée à lire d’autres billets sur le sujet! Je ne suis pas une computer geek, et ce genre d’explications facile d’accès m’aide beaucoup pour dans mon aventure dans le monde d’internet présente (j’ai un blog sur le parfum).
Je m'appelle Fabien
Bienvenue sur mon blog où vous trouverez une bonne dose quotidienne de news geek, design et web.
Golden Blog Awards 2011
catégorie
Actualités Web
Proposer un billet sponsorisé
Citation du jour
Articles les + mieux
Chaque semaine des articles
tout chauds dans ta boite mail
Derniers MP3 disponibles sur
Télécharger-MP3.mobi
par Mavenhosting
réel par FERank
100 solutions de Publicité et Articles sponsorisés
Plus d'articles dans Best of, Webmaster (39 sur 380 articles)