Skip to content
Appeler

jeudi, août 15, 2024

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:

- Redirection d'URL : Redirection de www vers non-www et de HTTP vers HTTPS si le protocole SSL est activé.
- Index de répertoire : Spécifie les fichiers par défaut à charger lors de l'accès à un répertoire.
- Navigation dans les répertoires : Désactive la navigation dans les répertoires.
- Accès aux fichiers : Protège le fichier .htaccess lui-même.
- Compression : Active la compression Gzip pour de meilleures performances.
- Mise en cache : exploite la mise en cache du navigateur pour améliorer les temps de chargement.
- En-têtes de sécurité : Ajoute des en-têtes HTTP liés à la sécurité.
- Pages d'erreur personnalisées : Dirige vers des pages d'erreur personnalisées pour les erreurs 404 et 500.
- Signature du serveur : Masque les informations relatives à la version du serveur pour des raisons de sécurité.

#### 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 Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Votre spécialiste du génie logiciel dispose d’une équipe aguerrie dans la réalisation de projets informatiques. Pour réussir votre transformation digitale, nous sommes votre partenaire informatique de taille.

#### L'Entreprise

- A propos
- Articles
- Partenariat
- Services
- Job
- Stages

#### Support

- Espace client
- FAQ
- Ticket
- Help Center
- Contacts

#### Localisation

- Conditions d'utilisation
- Politique de confidentialité

Facebook Instagram Linkedin Twitter
Copyright © 2021 ECODEV INTERNATIONAL, Tous droits réservés.
DISCUTEZ AVEC NOUS