NDLR: Cet article est actuellement en cours de réécriture – n’hésitez pas à revenir le consulter bientôt !
Je suis régulièrement condronté à des clients qui découvre un virus sur leur site ou que leur site a été piraté et fermé temporairement à la navigation par Google. La sécurité de votre site vous concerne donc aujourd’hui ! Même si votre site n’a pas énormément d’influence et de trafic, il est important que vous le sécurisiez sans tarder. Je ne suis vraiment pas là pour vous affoler…Juste pour vous donner quelques clefs pour améliorer la protection de votre plate-forme Web.
(niv. facile)
Archivez, Archivez, Archivez
C’est indéniablement le premier principe à appliquer (vous pouvez d’ailleurs vous familiariser avec cette démarche en suivant les tutoriels sur l’archivage de site et celui de l’archivage de la base de données). Ces tutos sont mis à jour au fil du temps et des solutions technologiques…Ne manquez pas de les consulter.
Sachez que les deux derniers sites que j’ai sauvé de la noyade, l’ont été car j’avais à ma disposition une archive fraîche et qu’il m’a été facile de revenir en arrière grâce à cette base stable.
Une bonne sauvegarde doit inclure deux éléments essentiels
- la base de données qui contient vos publications, commentaires, utilisateurs et autres informations dynamiques. Elle est indispensable pour restaurer le contenu de votre site en cas de panne ou de piratage .
- Les fichiers qui regroupent vos thèmes, plugins, images et fichiers multimédias, qui définissent l’apparence et la fonctionnalité de votre site .
Une sauvegarde complète garantit que vous pourrez restaurer votre site dans son intégralité en cas d’incident.
Première strate
Pour sécuriser efficacement votre site WordPress, commencez par choisir un hébergement de qualité. Un bon hébergeur garantit des sauvegardes régulières et fiables (que vous pouvez rappeler aisément et qui sont fonctionnelles), un certificat SSL gratuit et des outils de sécurité avancés comme des pare-feu et des analyses de logiciels malveillants.
Consultez cet article pour découvrir des recommandations d’hébergeurs adaptés, recommandations issues de mon expérience depuis mes années d’entrepreneuriat.
Deuxième strate
Pour renforcer la sécurité de votre site WordPress, ajoutez un outil de sauvegarde autonome qui fonctionne indépendamment des sauvegardes proposées par votre hébergeur.
Cela garantit une double protection en cas de problème.Des plugins comme UpdraftPlus (populaire pour sa simplicité et sa compatibilité ou Duplicator (idéal pour des sauvegardes complètes et des migrations) sont d’excellents choix. Ils permettent des sauvegardes automatiques planifiées et une restauration rapide en un clic.
Troisième strate
Pour sécuriser davantage votre site WordPress, il est recommandé de transférer vos sauvegardes vers un espace distinct de votre hébergement. Cette approche garantit une indépendance totale en cas de défaillance de votre serveur principal.
UpdraftPlus ou Duplicator permettent de sauvegarder vos fichiers sur des services cloud tels que Google Drive, Dropbox, Amazon S3 ou ou Infomaniak qui propose un service efficace de sauvegarde de données.. Par exemple, avec UpdraftPlus, vous pouvez automatiser le transfert de vos sauvegardes vers ces espaces externes, offrant ainsi une double sécurité.
(niv. facile à intermédiaire)
Prenez soin de votre Site WordPress
Mise à jour extensions et version WordPress
1Pour garantir la sécurité de votre site WordPress, il est essentiel de maintenir une approche rigoureuse quant aux mises à jour et à la gestion des extensions. Les mises à jour régulières ne se limitent pas à améliorer les performances ou à ajouter des fonctionnalités : elles corrigent également des failles de sécurité critiques . Un blog abandonné ou des extensions obsolètes peuvent devenir une porte arrière pour les hackers, compromettant ainsi l’ensemble de votre site.
Pour éviter cela
Sachez convenablement organiser votre thème
2 Pour sécuriser efficacement votre site WordPress, une bonne organisation de vos fichiers est essentielle. Vos fichiers médias, comme les images JPEG, ou encore des dossiers .zip clients, ne devraient jamais être stockés directement à la racine de votre site. Cela peut non seulement désorganiser votre structure, mais aussi exposer vos données à des risques inutiles.
Adoptez une approche méthodique
Classez et organisez vos fichiers dans des répertoires appropriés. Une structure bien pensée facilite l’administration quotidienne de votre site et simplifie sa récupération en cas de problème.
Pour renforcer cette organisation, WordPress ajoute automatiquement un fichier contenant un petit bout de code dans certains dossiers sensibles. Ce fichier, souvent nommé index.php ou .htaccess, empêche l’accès direct aux répertoires, protégeant ainsi vos contenus contre d’éventuelles intrusions.
Une protection optimale de tous vos répertoires peut également être obtenue par l ‘ajout du code suivant dans le .htaccess de votre site :
Options All -Indexes[/php] Cela aura pour effet d\'interdire la navigation intérieure de votre dossier à partir d\'un navigateur
Sécurisez votre installation en quelques clics (niv. intermédiaire)
Voici les réglages recommandés
Si ce n’est pas déjà fait par votre hébergeur.
- Fichiers WordPress : attribuez les permissions 644, permettant uniquement au propriétaire de lire et écrire, tandis que les autres peuvent seulement lire. Cela limite les modifications non autorisées.
- Dossiers WordPress : configurez-les en 755, autorisant le propriétaire à lire, écrire et exécuter, mais empêchant les autres utilisateurs d’écrire.
- wp-config.php : définissez des permissions encore plus restrictives, comme 440 ou 600, pour protéger ce fichier critique contenant vos informations de connexion à la base de données.
Supprimer le fichier readme.html
1Placé à la racine de votre site, ce fichier contient la version WordPress de votre site (testez avec www.votresite.com/readme.html). Si vous n\’avez pas su tenir à jour votre site, une version antérieure présentera des failles connues, et donc des moyens faciles de cracker votre accès.
Protéger en écriture wp-config.php et .htaccess
2Par ce moyen, vous permettez la lecture de ces fichiers, mais restreignez d\’éventuelles modifications au seul propriétaire. Pour cela, allez dans Filezilla (ou tout autre navigateur ftp) et cliquez droit sur le fichier et sélectionnez \ »Droit d\’accès au fichier\ » ; indiquez alors 644 dans le champ à compléter, puis validez. On peut également mener cette opération grâce à WP Security Scan qui identifie et permet de corriger les droits d\’accès en une seule passe.
Pendant que nous sommes sur l’étude de ces fichiers, rajoutez également ces bouts de codes qui vous aideront à protéger l’accès extérieur de ces fichiers sensibles. Utilisez Notepad++ (si vous ne disposez pas de ce programme gratuit, sûr et puissant, courrez l’obtenir), puis appliquez les modifications suivantes
→ Protégez votre fichier wp-config.php grâce à ce code ajouté en bas de votre fichier .htaccess (note, si ce fichier n’existe pas encore dans votre configuration, vous pouvez l’ajouter à la main en le nommant ‘.htaccess’ (sans les apostrophes) .
order allow,deny
deny from all
[/php]
→ Protégez votre propre fichier .htaccess grâce à ce code ajouté en bas de ce même fichier
order allow,deny
deny from all
[/php]
Masquez votre version
3Il convient également de masquer le numéro de version offert tout cru dans \"meta name\". Utiliser pour cela le fichier function.php (présent dans /wp-content/themes/Votre-Theme-enfant) et ajouter ce bout de code idoine...
remove_action(\"wp_head\", \"wp_generator\");[/php] On peut également empêcher le flux RSS d\'afficher la version WordPress avec la fonction suivante
function wpt_remove_version() { return \'\'; } add_filter(\'the_generator\', \'wpt_remove_version\');[/php]
Quelques précautions supplémentaires
4 Ne laissez enfin aucune donnée sensible comme l\'archive de base de données que certains plugins comme WP-backup stockent dans wp-content. Agir ainsi est laisser une réelle porte ouverte au piratage de votre site. Je ne m\'étendrai pas sur l\'importance du mot de passe de votre backoffice (car j\'ai déjà écrit un article à ce propos), mais c\'est un point primordial à respecter. Ne manquez pas de mettre à jour tous les sites de travail ou vos sites placés en voie de garage et qui ne serait plus exploités (tout en restant accessibles de l\'extérieur). Une version éculée de WordPress sur un site oublié et une porte arrière intéressante pour percer toute votre installation (c\'est une situation qu\'un site fort connu a expérimenté à ses dépends). Supprimer enfin tous les utilisateurs à fort pouvoir (administrateur) qui seraient inactifs depuis longtemps sur votre site
Des plugins à votre secours (niv.intermédiaire)
Better WP plugin
Un des meilleurs plugins qui saura efficacement protéger votre site et vous donner des bons conseils. Attention tout de même, certaines protections demandent du doigté.
→ voir le lien
WP Security Scan
Principalement tourné autour des allocations de permissions de vos fichiers & détection des brèches de sécurité. Moins complet, mais moins délicat à manier que Better WP plugin.
→ voir le lien
TAC (Theme Authenticity Checker)
Très puissant pour débusquer des codes malicieux dans votre thème. Peut provoquer de sacrés surprises si vous l'appliquez sur un thème gratuit (attention aux thèmes gratuits)
→ voir le lien
Ajouter des clefs de sécurité secrètes dans le fichier wp-config.php (niv. intermédiaire)
Si vous avez déjà installé par votre propre moyen un site WordPress, vous devriez avoir bien remarqué des codes particulier dans votre fichier wp-config.php (lequel contient les configurations nécessaires pour WordPress fonctionne convenablement). Cette section du fichier de configuration sont des clés d'authentification SALT qui crée un cookie d'identification lequel protège votre installation.
Si ces codes ne sont pas présent dans votre fichier wp-config.php, vous pouvez les régénérer grâce au lien suivant :
https://api.wordpress.org/secret-key/1.1/salt/
Notez que tout changement de ces clefs de salage aura pour effet d’invalider tous les cookies de votre site et forcera donc chaque utilisateur à se reconnecter sur votre blog.
Supprimer le compte ‘admin’ par défaut (niv. intermédiaire)
Par facilité ou par défaut (sur certains hébergeurs comme OVH) l'identifiant admin est souvent créé pour identifier l'espace d'administration. La popularisation de cet identifiant le rend par nature très sensible : le pirate potentiel n'a plus qu'à se concentrer sur votre mot de passe pour percer votre accès.
Si vous disposez d'un tel compte, créer un autre compte alternatif avec les mêmes droits d'administrateur, puis supprimer le compte dont l'identifiant est admin. Cette manœuvre peut se mener même en cours de vie du blog : un système de bascule des anciens articles et pages est automatiquement proposé
Masquer les erreurs de connexion (niv. expert)
Voilà typiquement un comportement de WordPress très 'user-friendly' qui peut s'avérer 'hacker-friendly' lorsqu'il se retourne contre vous. En effet, lors d'une erreur de saisie de votre mot de passe ou de votre login, WordPress vous guide gentiment et indique ce qui ne convient pas. Il s'agit donc de gommer cette fonctionnalité pour ne pas donner d'indice supplémentaire aux méchants pirates qui en veulent à vos données.
Pour cela, nous allons ajouter cette ligne de code à notre fichier function.php de notre thème enfant
add_filter('login_errors',create_function('$a', "return null;"));[/php]
Modifier le nom de votre dossier wp-content (niv. expert)
Ouvrez le fichier wp-config.php (il est sage de faire un archivage préalable de ce fichier si important). Aux alentours de la ligne 88-90 (ou de la dernière ligne de wp-config, vous devriez trouver la séquence :
require_once ABSPATH . ‘wp-settings.php’[/php] Ajouter immédiatement en dessous le code suivant
/*modification du nom de dossier wp-content*/ define ('WP_CONTENT_FOLDERNAME', 'nouveau-dossier'); define ('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME) ; define ('WP_CONTENT_URL', 'http://nom-de-domaine'. WP_CONTENT_FOLDERNAME); define ('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins'); define ('WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins'); /*fin de la modification*/[/php] Remplacer la mention
nouveau-dossier
par le nouveau nom de dossier de wp-content, et personnaliser la mention
votre-domaine
avec votre propre URL. Une fois ces manipulations faites et publiées sur wp-config, vous pourrez changer le nom de votre dossier
wp-content
avec un nom équivalent (sans majuscule, ni accent, ni espace).
Assurez-vous que tout continue à fonctionner sur votre site
, en particulier vos divers plugins. S'il s'avère que vous rencontrez un disfonctionnement, il est probable qu'un de vos plugins fasse mention au dossier wp-content, au lieu de faire appel à une fonction telle que use content_url(). Vous devrez alors corriger à la main cette mention dans les plugins défaillants (un bonheur) ou vous passer tout bonnement de ces plugins.
Il est bien entendu capital d'ajouter dans ce nouveau dossier, les composants habituels de wp-content, soit /languages /plugin /themes /upgrade, avec leur contenu légitime.
Protégez-vous contre le hotlinking
J'ai découvert dans les faits le hotlinking par le vol de mon article Archiver sa base de donnée WordPress qui s'est vu affiché sur un autre site que le mien...sans mon autorisation. Mes images ont été victimes de hotlinking, terme que je ne connaissais mal et qui consiste à "utiliser l'adresse d'un fichier publié sur un site web, le plus souvent une image, pour l'afficher sur un autre site, sur un blog" [définition Wikipédia].
Voici quelques lignes de codes que Jonathan B. propose sur http://www.geekpress.fr. J'ai approfondi le sujet et voici le fruit de mes recherches.
Définition
Traditionnellement (j'illustre ici le principe de fonctionnement de façon très grossière, vous trouverez un schéma plus étayé sur cet autre article) votre visiteur consulte le contenu de votre site grâce au serveur qui héberge vos images, vos textes (sur la base de données).
Dans le cas d'un hotlinking, votre "voleur" aussi maladroit qu'indélicat a copié l'ensemble du code source de votre article et l'a ajouté à une de ses pages.
La personne qui consulte votre article croit être au bon endroit sur le site voleur d'article. L'ensemble des images pointent cependant encore votre serveur, ce qui a terme en réduit sa vélocité.
Remède
Nous allons utiliser une fois le plus le .htaccess pour restreindre et rediriger l'emploi de vos images en hotlinking, en ajoutant le petit bout de code. Cette manipulation sera tout partiellement intéressante pour les photographe ou les graphistes dont la production est parfois indûment pillée.
[php padlinenumbers="true"]RewriteEngine On
# Remplacer mywebsite.com/ par l'adresse de votre site
# la mention NC rend insensible à la casse (majuscule/minuscule)
RewriteCond %{HTTP_REFERER} !^http://(.+.)?votredomaine.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
# Remplacer /images/nohotlink.jpg par le chemin de l'image affichée chez les voleurs
# Propose une image alternative lors de l'emploi abusif de vos images
# il est nécessaire de modifier l'url avec votre propre chemin
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
[/php]
On peut bien entendu supprimer toutes lignes commentées avec le signe # avant de le poster sur le .htaccess.
Ne manquez pas de sauvegarder la version précédente de ce fichier ; elle vous sera utile si vous faite une erreur de code et que votre site déploit alors une grosse erreur 500 :)
Vous utilisez le plugin Revolution Slider ?
Beaucoup de thèmes utilisent ce plugin, soit coordonné avec le site (l'extension se trouve alors avec les plugins existants installés sur votre site), soit de façon intégrée dans le code et les dossiers de votre thème. Revolution Slider est un plugin puissant, au prix d'être un peu une usine à gaz, ce qui ne l'a pas empêché d'être impacté par une grosse faille de sécurité. Sans vouloir vous faire peur, cette faille à touché beaucoup d'utilisateurs, dont certains très aguerris à WordPress.
Envato a établi une liste de tous les thèmes qui comprennent le plugin Revolution Slider. Le concepteur de l'application a mis également à disposition une version de mise à jour gratuite de cette application. Dans tous les cas avant d'agir, ne manquez pas de faire une archive complète de votre espace ftp et de votre base données pour sécuriser votre installation.
Cas#01 l'extension Revolution slider est intégré dans votre thème
→ Si vous ne voyez pas l'extension présente dans votre liste de plugins, il y a fort à parier qu'elle est intégrée directement dans les tréfonds de votre thème. Je vous conseille alors de retourner sur la boutique sur laquelle vous avez acheté votre thème pour rechercher une mise à jour qui propose un correctif et l'appliquer, ou de mettre à jour votre thème avec la dernière version disponible s'il s'agit d'un template gratuit. Si cette mise à jour n'existe pas, c'est assez problématique car votre site est en danger potentiel. Vous pourriez mettre les mains dans le cambouis pour remplacer manuellement les fichiers défaillants, mais ne connaissant pas la façon dont le développeur a intégrer l'extension, ce n'est pas nécessairement un conseil que je donnerai. La seule solution est de changer de thème ou de faire appel à un développeur pour faire cette mise à jour.
Cas#02 l'extension Revolution slider est comprise dans vos extensions
→ Je vous invite alors d'aller sur votre espace ftp dans wp-content/plugins/ et de rechercher le dossier relatif à Revolution slider. Ouvrez le, et supprimez tous sont contenu. Remplacer le sans tarder avec le contenu que vous avez nouvellement téléchargez. L'ensemble de vos réglages (présent sur la base de données et non sur l'espace FTP) seront préservés.
Vous avez été piraté ? Voici quelques outils
Anti-Malware Security and Brute-Force Firewall
https://fr.wordpress.org/plugins/gotmls/Cet outil est intéressant même vous n’avez pas été attaqué. Il est en mesure de lancer un scan complet et de supprimer automatiqueement les éventuellement menace et faille qu’il pourrait detecter. Il est également assorti d’un firewall qui protège contre les malware issus de plugin comme Revolution slider ou timthumb. Il se met à jour constamment avec de nouvelles liste de menaces et malware Existe en version premium
Vous n’avez pas le temps, voici en résumé la sécurité pour les super-pressés
- Archiver
- Supprimer le readme.html à la racine de WordPress
- Maintenir la version de WordPress et les plugins à jour
- Utiliser un mot de passe long comportant une multitude de caractères différents