ECODEV Internationale
Sécurité, Tutoriels

Comment protéger son site web grâce au .htaccess

Partagez :

.htaccess ? à quoi ça sert

Dans cet article, nous verront comment protéger son site web grâce au .htaccess.

De façon général,  les fichiers .htaccess comprennent une série de directives permettant de gérer des tâches courantes telles que la réécriture d’URL, la sécurité et les performances. Voici un exemple de base de fichier .htaccess :!

# Activer le moteur de réécriture
RewriteEngine On

# Rediriger www vers non-www (changez example.com par votre domaine)
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Rediriger HTTP vers HTTPS (si SSL est activé)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# Définir la page d'index par défaut
DirectoryIndex index.php index.html

# Désactiver la navigation dans les répertoires
Options -Indexes

# Bloquer l'accès au fichier .htaccess lui-même
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

# Activer la compression Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-php-source
</IfModule>

# Utiliser la mise en cache du navigateur
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/html "access plus 1 minute"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>

# Définir les en-têtes de sécurité
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set X-Frame-Options "SAMEORIGIN"
</IfModule>

# Pages d'erreur personnalisées
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

# Désactiver la signature du serveur
ServerSignature Off

Ce fichier peut servir de point de départ pour une protection basique de votre site web et à partir de là vous pouvez l’adapter et ajouter d’autres règles qui correspondent le mieux à votre environnement, et à vos besoins spécifiques.

Points clés:

Aller plus loin....

La sécurité étant essentielle pour  un site web, nous vous proposons quelques  astuces de sécurité supplémentaires que vous pouvez ajouter à votre fichier .htaccess

1. Protéger les fichiers sensibles

Empêchez l’accès aux fichiers de configuration sensibles comme wp-config.php (si vous utilisez WordPress)ou d’autres fichiers de configuration spécifiques :

# Protéger les fichiers de configuration
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
2. Limiter l'accès à certaines IP

Vous pouvez restreindre l’accès à certaines parties de votre site (comme l’administration par exemple) à des adresses IP spécifiques. Il faut noter qu’il s’agit ici d’adresses IP publiques. Remplacer « 41.284.62.58 » par l’adresse que vous souhaitez autoriser, vous pouvez renseigner plusieurs adresses.

# Limiter l'accès à l'administration à une IP spécifique
<Files "admin-ajax.php">
Order Deny,Allow
Deny from all
Allow from 41.284.62.58
</Files>
3. Interdire l'accès à certains fichiers

Interdisez l’accès à certains fichiers et répertoires sensibles :

# Interdire l'accès aux fichiers .env, .git, .gitignore, etc.
<FilesMatch "\.(env|git|gitignore|svn|bak|orig)$">
Order Allow,Deny
Deny from all
</FilesMatch>

# Interdire l'accès aux répertoires cachés
RedirectMatch 403 /\..*$
4. Activer la protection contre les attaques XSS

Assurez-vous que les navigateurs bloquent les attaques XSS (Cross-Site Scripting) :

# Protection contre les attaques XSS
Header set X-XSS-Protection "1; mode=block"
5. Prévenir le détournement de clics (Clickjacking)

Protégez votre site contre les attaques de détournement de clics :

# Protection contre le détournement de clics
Header always append X-Frame-Options SAMEORIGIN

Laisser un commentaire