La sécurité de WordPress est l'un des facteurs les plus compromis parmi les blogueurs novices. Dans une installation WordPress non supervisée, de nombreuses vulnérabilités potentielles sont laissées sans surveillance. La plupart des tutoriels d'installation de WordPress expliquent un moyen rapide et facile de déployer WordPress en quelques minutes. Mais ils manquent quelques facteurs de sécurité importants. Par exemple, la navigation dans les répertoires et l'utilisation du nom d'utilisateur « admin » sont considérées comme de sérieuses failles de sécurité. Aujourd'hui, nous allons examiner 10 extraits de code .htaccess qui aideront à améliorer la sécurité de votre blog WordPress. Avant de commencer, examinons rapidement ce qu'est le fichier htaccess.

Qu'est-ce que le fichier .htaccess ?

Un fichier htaccess est un fichier de configuration facultatif que le serveur Web Apache doit interpréter, pour chaque répertoire. Vous pouvez stocker divers paramètres dans ce fichier, tels que : protéger un répertoire par mot de passe, bloquer les adresses IP, bloquer un fichier ou un dossier de l'accès public, etc. Traditionnellement, le fichier .htaccess est présent dans le répertoire d'installation de base de WordPress. Il stocke la structure du permalien par défaut.

POINTE: Avant de commencer le didacticiel, assurez-vous de sauvegarder le fichier .htaccess actuel (le cas échéant) dans un service de stockage en nuage comme Dropbox. Il s'agit de revenir au dernier fichier .htaccess fonctionnel connu, si un certain extrait de code casse votre site. Commençons.

1. Bloquer les mauvais robots

mauvais robots

L'une des meilleures utilisations du fichier .htaccess est sa capacité à empêcher plusieurs adresses IP d'accéder à votre site. Ceci est utile pour bloquer les spammeurs connus et d'autres origines d'accès suspects ou malveillants. Le code est :

# Block one or more IP address.
# Replace IP_ADDRESS_* with the IP you want to block

<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

Où IP_ADDRESS_1 est la première adresse IP que vous souhaitez empêcher d'accéder à votre site. Vous pouvez ajouter autant d'adresses IP que vous le souhaitez. Quels que soient les agents utilisateurs (navigateurs) utilisés par ces adresses IP, ils ne pourront pas accéder à un seul fichier depuis votre serveur. Le serveur Web refusera automatiquement tout accès.

2. Désactiver la navigation dans l'annuaire

wordpress htaccess pirater désactiver la navigation dans les répertoires

C'est l'une des failles de sécurité les plus minées d'un site WordPress. Par défaut, le serveur Web Apache permet la navigation dans les répertoires. Cela signifie que tous les fichiers et dossiers à l'intérieur du répertoire racine (parfois appelé répertoire de base) du serveur Web sont enrôlables et accessibles par un visiteur. Vous ne voulez pas cela parce que vous ne voulez pas que les gens parcourent vos téléchargements de médias ou vos fichiers de thème ou de plug-in.

Si au hasard je choisis 10 sites Web personnels ou professionnels exécutant WordPress, 6 à 8 d'entre eux n'auront pas la navigation dans les répertoires désactivée. Ceci permet n'importe qui pour renifler facilement autour du wp-contenu/téléchargements dossier ou tout autre répertoire qui n'a pas la valeur par défaut index.php fichier. En fait, la capture d'écran que vous voyez provient du site de l'un de mes clients, avant que je recommande le correctif. Extrait de code pour désactiver la navigation dans les répertoires :

# Disable directory browsing
Options All -Indexes

3. Autoriser uniquement les fichiers sélectionnés à partir de wp-content

obturateurstock_108312266

Comme vous le savez le wp-contenu Le dossier contient la plupart de vos thèmes, plugins et tous les téléchargements de médias. Vous ne voulez certainement pas que les gens y accèdent sans restrictions. En plus de désactiver la navigation dans les répertoires, vous pouvez également refuser l'accès à tous les types de fichiers, sauf quelques-uns. Essentiellement, vous pouvez débloquer de manière sélective des fichiers tels que JPG, PDF, DOCX, CSS, JS, etc. et refuser le reste. Pour ce faire, collez cet extrait de code dans votre fichier .htaccess :

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

Vous devez créer un nouveau fichier .htaccess avec le code et le coller dans le wp-contenu dossier. Ne le placez pas dans le répertoire d'installation de base, sinon cela ne fonctionnera pas. Vous pouvez également ajouter n'importe quel type de fichier à la liste en ajoutant un ‘|' après “rar”. La liste ci-dessus contient les fichiers nécessaires – XML, CSS et JavaScript, les formats d'image et de document courants et enfin les formats d'archive les plus utilisés.

4. Restreindre tout accès à wp-includes

obturateurstock_135573032

le dossier wp-inclut contient uniquement les fichiers strictement nécessaires pour exécuter la version de base de WordPress – une version sans plugins ni thèmes. N'oubliez pas que le thème par défaut réside toujours dans le wp-contenu/thème annuaire. Ainsi, aucun visiteur (y compris vous) ne devrait exiger l'accès au contenu du wp-inclure dossier. Vous pouvez désactiver l'accès à l'aide de l'extrait de code suivant :

# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

5. Autoriser uniquement les adresses IP sélectionnées à accéder à wp-admin

obturateurstock_140373169

le wp-admin dossier contient les fichiers nécessaires pour exécuter le tableau de bord WordPress. Dans la plupart des cas, vos visiteurs n'ont pas besoin d'accéder au tableau de bord WordPress, à moins qu'ils ne souhaitent créer un compte. Une bonne mesure de sécurité consiste à n'autoriser que quelques adresses IP sélectionnées à accéder au wp-admin dossier. Vous pouvez autoriser les adresses IP des personnes qui ont besoin d'accéder au tableau de bord WordPress – éditeurs, contributeurs et autres administrateurs. Cet extrait de code permet uniquement aux adresses IP fixes d'accéder au wp-admin dossier et refuse l'accès au reste du monde.

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

Assurez-vous de créer un nouveau fichier .htaccess et de le coller dans le dossier wp-admin et non dans le répertoire d'installation de base. Si c'est ce dernier cas, personne d'autre que vous ne pourra parcourir votre site – pas même les moteurs de recherche ! Vous ne le souhaitez certainement pas. Voici quelques inconvénients de cette mesure :

  • Si votre site permet ou promeut Enregistrement d'un nouvel utilisateur, il serait presque impossible de suivre le nombre d'utilisateurs. Par exemple, chez WPExplorer, si vous souhaitez télécharger nos superbes thèmes gratuits, vous devez vous inscrire.
  • Gens avec adresses IP dynamiques (principalement les utilisateurs haut débit ADSL utilisant les protocoles PPP ou PPPoE) voient leur adresse IP modifiée à chaque fois qu'ils se déconnectent et se connectent à leur FAI. Il serait certainement impossible de garder une trace de toutes ces adresses IP et de les ajouter au fichier htaccess.
  • Le haut débit mobile: Que vous soyez en 3G ou 4G, votre adresse IP dépend de la tour cellulaire actuelle à laquelle vous êtes connecté. Supposons que vous voyagez – votre adresse IP changera constamment à chaque couple de kilomètres parcouru depuis l'origine. Encore une fois, garder une trace du fichier htaccess est presque impossible.
  • Points d'accès Wi-Fi publics : L'utilisation d'informations d'identification lorsqu'il est connecté à Internet à l'aide d'un point d'accès Wi-Fi public est un grand non-non, car un enfant avec un petit logiciel peut extraire chaque caractère que vous tapez. Sans oublier que chaque point d'accès Wi-Fi aura une adresse IP unique.

Heureusement, tous ces inconvénients (sauf le premier) peuvent être corrigés en utilisant un VPN. Si vous configurez votre VPN pour qu'il se connecte en utilisant une seule adresse IP, vous pouvez simplement l'ajouter à votre fichier htaccess et tous vos problèmes seront résolus.

6. Protégez wp-config.php et .htaccess de tout le monde

wordpress-ecommerce-securite-shopping-conseils

le wp-config.php Le fichier contient les informations d'identification d'accès les plus sensibles de votre site WordPress. Il contient le nom de la base de données et les informations d'identification d'accès et diverses autres données critiques, entre autres paramètres. Vous ne voulez en aucun cas que d'autres personnes consultent ce dossier. Et bien sûr, vous voulez désactiver l'accès public à la source de toute cette sécurité – le .htaccess fichier lui-même. Vous pouvez désactiver l'accès à wp-config.php avec ce code suivant :

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>

Pour refuser l'accès à tous les fichiers htaccess (rappelez-vous que certains peuvent résider dans les dossiers wp-admin et autres), utilisez cet extrait de code :

# Deny access to all .htaccess files
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

7. Refuser les liens vers les images

image-hotlinking

L'un des hacks de fichiers .htaccess les plus cool, celui-ci envoie des scrapers de contenu courir avec leur queue entre leurs jambes. Lorsque quelqu'un utilise l'image de votre site, votre bande passante est consommée et la plupart du temps, vous n'êtes même pas crédité pour cela. Cet extrait de code élimine ce problème et envoie cette image lorsqu'un lien dynamique est détecté.

# Prevent image hotlinking script. Replace last URL with any image link you want.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourotherwebsite.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

8. Activer la mise en cache du navigateur

liste des navigateurs web

Également connu sous le nom de mise en cache côté client, ce hack .htaccess active les options de mise en cache du navigateur recommandées pour votre site WordPress. Vous pouvez également l'utiliser dans d'autres projets – sites HTML, etc.

# Setup browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

9. Rediriger vers une page de maintenance

obturateurstock_93288208

Lorsque vous migrez des hébergeurs ou effectuez une tâche de maintenance, il est toujours recommandé de créer un fichier HTML statique “down for maintenance” pour informer vos visiteurs que le site Web subit une opération de mise à niveau ou de maintenance. Créez simplement un fichier maintenance.html (ou tout autre nom de fichier) et téléchargez-le dans le répertoire d'installation WordPress de base. Collez l'extrait de code suivant dans votre fichier .htaccess. Une fois l'opération terminée, assurez-vous de supprimer ou de commenter ces lignes pour revenir au fonctionnement global. Vous pouvez commenter en ajoutant un ‘#' au début de chaque ligne.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L] 

10. Pages d'erreur personnalisées

modèle 404

Vous pouvez également utiliser le fichier .htaccess pour configurer des pages d'erreur personnalisées conviviales pour les erreurs telles que 403, 404 et 500. Une fois que vous avez préparé votre page d'erreur – disons error.html, téléchargez-la dans votre répertoire d'installation WordPress de base. Ajoutez ensuite l'extrait de code suivant à votre fichier .htaccess pour activer la page d'erreur personnalisée :

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

Conclusion:

Aujourd'hui, nous avons appris quelques-uns des hacks htaccess les plus cool pour renforcer votre site WordPress. Je vous suggère d'essayer chaque module un par un tout en faisant une sauvegarde du fichier .htaccess avant et après avoir testé chaque module. C'est parce que le fichier .htaccess est très critique. Un caractère ‘#' manquant ou un ‘‘ mal placé pourrait détruire l'intégrité de votre site. Si vous accédez fréquemment à votre tableau de bord WordPress lors de vos déplacements, il est recommandé de ne pas activer les adresses IP sélectives pour votre wp-admin dossier.

A vous de jouer, que pensez-vous de ce post ? Pensez-vous que cela vaut la peine d'éditer le fichier htaccess ? Connaissez-vous une meilleure astuce de sécurité ? Nous aimerions recevoir de vos nouvelles.

Laisser un commentaire