Avoir un fichier .htaccess bien configuré est essentiel, si vous voulez que votre site WordPress soit plus sécurisé et moins vulnérable. Souvent, le but quand on crée un fichier .htaccess personnalisé est d’éviter que son site se fasse pirater. Mais c’est aussi un excellent moyen pour gérer les réacheminements et les tâches liées aux caches.
.htaccess est un fichier de configuration utilisé sur les serveurs web Apache. Même s’il y a une petite portion gérée par Nginx, la plupart des sites WordPress utilisent un serveur Apache. Dans cet article vous pouvez trouver une collection extraits de code .htaccess. Vous pouvez utiliser la plupart d’entre eux pour sécuriser votre site pendant que le reste met en place d’autres fonctions utiles.
N’oubliez pas de procéder à une sauvegarde du fichier .htaccess avant de le modifier, afin que vous puissiez réutiliser la version précédente au cas où quelque chose ne se passe pas comme prévu.
Et si vous êtes du genre à ne pas toucher aux fichiers de configuration, je vous recommande le plugin BulletProof Security, qui est le plus fiable (et probablement le plus ancien) plugin de sécurité gratuit .htaccess sur le marché.
Liste de contenu
Créer le WP .htaccess par défaut
.htaccess fonctionne et est basé sur des registres (directory), c’est-à-dire que chaque registre peut avoir son propre fichier .htaccess. Il se peut que votre site WordPress n’ait pas encore un accès à un fichier .htaccess. Si vous n’avez pas un fichier .htaccess dans votre registre initial (root directory), créez un fichier texte vierge et nommez le .htaccess.
Ci-dessous, vous pouvez voir le .htaccess par défaut que WordPress utilise. Chaque fois que vous avez besoin de ce code, vous pouvez rapidement le voir dans le WordPress Codex. Notez qu’il y a un .htaccess différent pour WP Multisite.
Les lignes qui commencent par # sont des commentaires. Ne modifiez pas les entrées entre les lignes # BEGIN WordPress et # END WordPress. Ajoutez vos règles .htaccess sous ces règles par défaut.
Tous les extraits de code que vous trouvez dans cet article vont vers le fichier principal .htaccess.
1. Empêcher l’accès à tous les fichiers .htaccess
Le code ci-dessous empêche l’accès à tous les fichiers .htaccess que vous avez installés sur votre WordPress. De cette façon, vous pouvez empêcher les gens de regarder les configurations de votre serveur web.
2. Protégez votre configuration WP
Le fichier wp-config.php contient toutes vos configurations WP, incluant l’identifiant et le mot de passe pour votre base de données. Vous avez le choix entre empêcher l’accès à tout le monde ou accorder l’accès à des administrateurs.
Si vous choisissez ce dernier, modifiez la ligne # Allow from xx.xx.xx.xxx (enlevez le # au début de la ligne) et inscrivez l’adresse IP de l’administrateur à la place de xx.xx.xx.xxx.
3. Empêcher les attaques XML-RPC DDoS
Par défaut, WordPress supporte XML-RPC, qui est une interface permettant la publication à distance. Cependant, même si elle est une très bonne fonction, elle est aussi l’une des plus grandes vulnérabilités de WP en termes de sécurité, puisque les hackers peuvent l’utiliser pour des attaques DDoS.
Si vous ne voulez pas utiliser cette fonctionnalité, le mieux est de le désactiver. Comme auparavant, vous pouvez ajouter des exceptions en modifiant la ligne # Allow from xx.xx.xx.xxx et en inscrivant les IP de vos administrateurs.
4. Protégez votre zone administrateur
C’est aussi une bonne idée de protéger votre zone administrateur, en n’y donnant accès qu’aux administrateurs. Ici, n’oubliez pas d’ajouter au moins une exception « Allow » (« Permettre »), sinon vous ne pourriez même pas accéder à votre session administrateur.
5. Empêchez le listage de registres
La plupart des sites WordPress ne désactivent pas le listage de registres, cela veut dire que n’importe qui peut naviguer dans les dossiers et fichiers. Cela inclu les fichiers audio, les fichiers vidéo, les photos ou encore les fichiers de plugin téléchargés. Il n’est pas nécessaire de dire que c’est une énorme vulnérabilité pour la sécurité.
Ci-dessous, vous pouvez voir à quoi ressemble le listage d’un registre de WordPress.
Heureusement, vous n’avez juste besoin que d’une ligne de code pour bloquer cette fonction. Cet extrait de code montrera un message 403 error (erreur 403) aux personnes essayant d’accéder à vos registres.
6. Empêchez l’énumération de nom d’utilisateur
Si les permalinks WP sont activés, il est assez facile d’énumérer les noms d’utilisateurs en utilisant l’archive auteur. Les noms d’utilisateurs révélés (incluant le nom d’utilisateur de l’administrateur) pourront ainsi être utilisés pour une attaque brute.
Insérez le code ci-dessous dans votre fichier .htaccess pour empêcher l’énumération de noms d’utilisateurs.
7. Bloquez les spammeurs et les robots
Des fois vous voudriez restreindre l’accès à certaines adresses IP. L’extrait de code suivant fournit une façon simple de bloquer les spammeurs et les robots que vous savez déjà.
8. Empêchez le hotlinking d’image
Même si ce n’est pas un souci de sécurité, le hotlinking d’image est quelque chose qui dérange. Non seulement les gens utilisent vos photos sans votre permission, mais ils le font à vos frais. Avec ces lignes de code, vous pouvez protéger votre site des hotlinking.
9. Restreindre l’accès direct aux fichiers de plugin et thème PHP
Il peut être dangereux si quelqu’un accède directement à vos fichiers de plugin et thème, que ce soit involontairement ou à des fins malicieuses. Cet extrait de code est fourni par la société de sécurité Acunetix. Vous pouvez en savoir plus sur cette vulnérabilité dans leur blog.
10. Mettre en place des réacheminements permanents
Vous pouvez facilement gérer les réacheminements permanents avec .htaccess. D’abord vous devez ajouter l’ancien URL, puis suivre le nouveau URL qui pointe vers la page sur laquelle vous voulez rediriger l’utilisateur.
11. Envoyez les visiteurs vers une page de maintenance
Nous avons parlé en détail de cette technique ici. Vous devez avoir une page de maintenance séparée (maintenance.html dans l’exemple) pour que cette règle .htaccess fonctionne. Ce code met votre site WordPress en mode maintenance.
12. Restreindre tous les accès à WP includes
Le dossier /wp-includes/ contient les principales fichiers WordPress, qui sont nécessaires pour que le CMS marche. Ici il n’y a pas de contenu, plugins, thèmes ou quelque chose d’autre qu’un utilisateur voudrait y accéder. Donc pour renforcer la sécurité, il serait mieux de restreindre tous les accès y menant.
13. Bloquez le cross-site scripting (XSS)
L’extrait de code suivant est de WP Mix et il protège votre site contre certaines attaques XSS, c’est-à-dire l’injection de script, une modification globale ou encore des requêtes de variables.
14. Activez la mise en cache du navigateur
Comme je l’ai mentionné auparavant, .htaccess n’est pas seulement utilisé pour des raisons de sécurité et de réacheminement, mais il vous permet aussi de gérer la mise en cache. L’extrait de code ci-dessous est d’Elegant Themes et il rend la mise en cache par le navigateur possible, en permettant aux visiteurs de sauvegarder certains types de fichiers. Ainsi la prochaine fois qu’ils visiteront le site, ils n’auront pas besoin de télécharger encore une fois.
15. Mettez en place des pages d’erreur personnalisées
Vous pouvez utiliser .htaccess pour mettre en place des pages d’erreur personnalisées sur votre site WordPress. Pour que cela marche, vous devez aussi créer des pages d’erreur personnalisées (custom-403.html, custom-404.html dans l’exemple) et les télécharger vers votre dossier principal (root).
Vous pouvez mettre en place une page d’erreur personnalisée pour n’importe quel code d’erreur HTTP (codes 4XX et 5XX) que vous voulez.
Auteure des blogs, Aina Strauss préfère penser à « carrière » comme un verbe plutôt qu’un nom. Elle est journaliste indépendant depuis les débuts du Web et écrit sur tout, de l’informatique, de nouvelles technologies au voyage. Son but n’est autre que d’apporter plus d’informations à tous ceux qui souhaitent adopter les nouvelles technologies du Web et de les aider à sélectionner le meilleur hébergement de manière pratique et rentable.