Configurer un fichier .htaccess pour renforcer la sécurité de votre site Imprimer

  • .htaccess, sécurité
  • 0

Le fichier .htaccess permet d’appliquer des règles de sécurité au niveau d’un répertoire (et de ses sous-répertoires) sur un hébergement Apache/cPanel. Bien configuré, il réduit fortement les risques d’intrusion, de divulgation d’informations et d’abus de ressources.

Pré-requis et bonnes pratiques

  • Sauvegardez votre fichier .htaccess actuel (ex. .htaccess.bak).
  • Placez les règles à la racine du site (/public_html) et, au besoin, dans certains sous-dossiers (ex. uploads, tmp).
  • Après chaque modification, testez immédiatement : une erreur de syntaxe peut provoquer un HTTP 500.
  • Sur nos hébergements, des protections serveur (pare-feu, ModSecurity, etc.) sont déjà actives. Le .htaccess vient en complément.

Désactiver l’indexation des répertoires

Empêche l’affichage de la liste des fichiers si aucun index n’est présent.

Options -Indexes

Masquer la version d’Apache/PHP et désactiver les signatures

Évite la divulgation d’informations utiles aux attaquants.

ServerSignature Off

Bloquer l’accès aux fichiers sensibles

Interdit l’accès web à des fichiers de configuration, d’environnement ou de sauvegarde.

<FilesMatch "\.(env|ini|log|bak|sql|yml|yaml)$">
  Require all denied
</FilesMatch>

# Protéger le .htaccess lui-même
<Files ".htaccess">
  Require all denied
</Files>

Empêcher l’exécution de scripts dans les dossiers d’upload

À placer dans le(s) dossier(s) de téléversement (ex. public_html/wp-content/uploads/.htaccess).

php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .php7 .php8
RemoveType .php .phtml .php3 .php4 .php5 .php7 .php8
<FilesMatch "\.(php|phtml|php[0-9])$">
  Require all denied
</FilesMatch>

Limiter les méthodes HTTP autorisées

Réduit la surface d’attaque aux méthodes nécessaires.

<LimitExcept GET POST HEAD>
  Require all denied
</LimitExcept>

Activer des en-têtes de sécurité (recommandé)

Ajoute des protections côté navigateur. Adaptez la CSP à votre site (domaines de scripts, fonts, images…).

<IfModule mod_headers.c>
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
  # Exemple CSP minimaliste à personnaliser :
  Header always set Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; script-src 'self'; style-src 'self' 'unsafe-inline' https:; font-src 'self' https: data:"
</IfModule>

Forcer le HTTPS (si non activé via cPanel)

Si vous n’utilisez pas la redirection HTTPS des “Domaines” dans cPanel, appliquez-la ici.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Activer HSTS (option avancée)

Signale aux navigateurs d’utiliser uniquement HTTPS. À n’activer qu’une fois le site 100% compatible HTTPS (sinon risque de blocage).

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>

Réduire les scans et hotlinking

Bloquer le hotlinking (affichage de vos images depuis d’autres sites) :

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?votredomaine\.com/ [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC,L]

Protéger certaines zones par mot de passe (Basic Auth)

Idéal pour un répertoire d’administration ou un espace de préproduction.

AuthType Basic
AuthName "Zone protégée"
AuthUserFile /home/UTILISATEUR/.htpasswds/mon-dossier/passwd
Require valid-user

Créez le fichier de mots de passe via cPanel > Répertoires protégés par mot de passe ou avec htpasswd.

Filtrer quelques User-Agents agressifs (optionnel)

Peut limiter l’impact de certains bots. À utiliser avec parcimonie.

BrowserMatchNoCase "badbot|crawlerbot|spamBot" bots
<RequireAll>
  Require all granted
  Require not env bots
</RequireAll>

Dépannage

  • Erreur 500 après modification : restaurez votre sauvegarde et réintroduisez les règles une par une.
  • Conflits possibles avec des règles générées par des CMS/plug-ins (WordPress, Joomla, cache). Fusionnez prudemment.
  • Si vous utilisez un CDN/proxy (Cloudflare), vérifiez que les en-têtes ne sont pas doublés ou filtrés.

En résumé

Le .htaccess est un levier simple et puissant pour renforcer la sécurité : masquage d’informations, contrôle d’accès, blocage d’exécutions indésirables, en-têtes de sécurité et redirection HTTPS. Combinez ces règles avec des mises à jour régulières de votre CMS/plug-ins et des mots de passe robustes pour un niveau de protection élevé.


Cette réponse était-elle pertinente?

« Retour

Nouveaux services

Création Site Web

  • Etude de Projet
  • Mis en oeuvre rapide
  • Conception
  • Réalisation
  • Développement
  • Suivi de Projet
  • Maintenance
sur devis

Refonte Site Web

  • Rafraichissement du design
  • Intégration des réseaux sociaux
  • Mise à jour des textes et photos
  • Nouvelles fonctionnalités
  • Améliorer la convivialité
  • Nouvelle ergonomie
  • Optimiser le référencement
sur devis

Mise à jours CMS

  • Eviter les piratages
  • Affichage plus rapide du site
  • Péréniser le référencement
  • Améliore la sécurité du site
  • Nouvelles fonctionalités
  • Gestion d’articles plus aisée
sur devis

Sécurisation CMS

  • Modifier les valeurs par défaut
  • Combler les failles de sécurité
  • installation d’un pare-feux
  • Forcer l’authetification via SSL
sur devis