Protéger un site par mot de passe avec .htaccess et .htpasswd – Maintenance et accès

Activer un mode maintenance sécurisé et limiter l’accès à certains utilisateurs

Lors du développement d’un site, de la révision de contenus ou de la présentation anticipée d’une nouvelle page à un client, celle-ci ne doit pas nécessairement être accessible à tous les visiteurs. Une solution simple et très répandue consiste à utiliser une protection par mot de passe avec .htaccess et .htpasswd. Cette protection fonctionne côté serveur et empêche les visiteurs sans identifiants d’accéder au contenu du site.

Dans cet article, je vous explique étape par étape le fonctionnement de cette protection, quand elle est utile, ses avantages et inconvénients ainsi que les alternatives possibles. Vous pourrez ensuite protéger correctement et en toute sécurité votre site ou certains sous-dossiers avec .htaccess.

Qu’est-ce qu’un fichier .htaccess ?

Le fichier .htaccess est un fichier de configuration principalement utilisé avec des serveurs web comme Apache et LiteSpeed. Placé dans le dossier du site, il permet de définir des réglages côté serveur sans modifier la configuration principale du serveur web.

Fonctions courantes du fichier .htaccess :

  • Activer une protection par mot de passe
  • Créer des redirections et des règles de réécriture
  • Définir les paramètres de cache
  • Définir des pages d’erreur
  • Autoriser ou bloquer l’accès à certaines adresses IP

Le fichier .htaccess est idéal pour une protection par mot de passe, car il se configure rapidement sans modifier directement le serveur.

Qu’est-ce qu’un fichier .htpasswd ?

Le fichier .htpasswd contient les noms d’utilisateur et les mots de passe chiffrés utilisés par le serveur web pour l’authentification. Il est stocké séparément, généralement hors du répertoire web public, afin de ne pas être accessible de l’extérieur.

Exemple :

user:secret
#beispiel: test:test123242345
test: $apr1$547x6czg$ZOB.RvFfT2JdN1KfOvuUF0

Important :
Les mots de passe sont stockés ici sous forme chiffrée. Les formats Apache basés sur MD5, SHA ou bcrypt sont les plus courants. Les mots de passe en clair sont absolument à proscrire.

Vous pouvez générer les mots de passe avec :

  • des générateurs htpasswd
  • Console Linux : htpasswd -nb utilisateur motdepasse
  • des outils en ligne avec SSL, uniquement pour des tests

Où placer le fichier .htpasswd ?

Le fichier .htpasswd doit toujours se trouver hors de la racine web publique, donc jamais dans /public_html, /www ou /htdocs. Voici un exemple de chemin sûr :

/home/username/secure/.htpasswd

Ou, dans certains environnements d’hébergement :

/var/www/.secrets/htpasswd

Le chemin doit être choisi de manière à ne pas être accessible depuis un navigateur.

Protection par mot de passe avec .htaccess – Exemple

La configuration de base ressemble à ceci :

AuthUserFile /home/benutzer/secure/.htpasswd
AuthGroupFile /dev/null
AuthName "Passwortgeschuetzter Bereich"
AuthType Basic
Require valid-user

Dès que ce fichier se trouve dans le dossier souhaité, ce dossier et tous ses sous-dossiers sont protégés.

Peut-on protéger uniquement des sous-dossiers ?

Oui, c’est même très courant. Si une version bêta se trouve par exemple dans le sous-dossier /apercu, placez-y un fichier .htaccess distinct. Le reste du site demeure accessible.

Protection par mot de passe de domaines ou sous-domaines précis

Cela fonctionne également sans problème. Chaque domaine et sous-domaine peut utiliser ses propres fichiers .htaccess. Vous pouvez ainsi protéger entièrement un domaine de test tout en laissant le domaine principal accessible.

Exemple de règle dépendant du domaine :

SetEnvIf Host my-domain.test passreq

AuthType Basic
AuthName "Password Required"
AuthUserFile /home/user1234/meinewebsite/htpwd/.htpasswd

Require valid-user

Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any

Cette configuration permet de décider, selon le nom de domaine, si un mot de passe est nécessaire.

Avec quels serveurs web cette méthode fonctionne-t-elle ?

La méthode .htaccess fonctionne avec :

  • Apache
  • LiteSpeed
  • OpenLiteSpeed, avec certaines limitations

.htaccess n’est pas pris en charge par :

  • Nginx
  • IIS (Microsoft)

Avec Nginx, la protection par mot de passe doit être configurée dans la configuration du serveur et non dans .htaccess.

Avantages et inconvénients de la protection par .htaccess

AvantageInconvénient
Très simple à configurerNe fonctionne pas avec Nginx sans accès à la configuration du serveur
Aucune extension ni aucun logiciel nécessaireLa fenêtre de connexion ne peut pas être personnalisée
Protection côté serveurBasic Auth transmet le nom d’utilisateur et le mot de passe encodés, mais non chiffrés
Idéal pour un mode maintenance ou une préversion protégéeNon sécurisé sans HTTPS
Fonctionne pour un site entier ou certains dossiersPeut ralentir les systèmes de cache

Important :
Utilisez toujours HTTPS afin que les identifiants soient transmis de manière chiffrée.

La protection par mot de passe est-elle sûre ?

Correctement configurée, l’authentification Basic Auth offre une sécurité suffisante pour les pages de prévisualisation, les outils internes ou les environnements de développement. Elle ne remplace toutefois pas un système de connexion complexe destiné, par exemple, à un espace membre ou à une application web.

Recommandations pour une sécurité maximale :

  • Activer HTTPS
  • Créer les mots de passe avec bcrypt
  • Stocker le fichier .htpasswd hors du répertoire web
  • Utiliser également une liste blanche d’adresses IP, si nécessaire

Quelles sont les alternatives ?

Liste blanche d’adresses IP

Autoriser l’accès uniquement depuis certaines adresses IP :

Order deny,allow
Deny from all
Allow from 123.123.123.123

Extension de mode maintenance

Pour WordPress, Joomla, Shopware et d’autres CMS, des extensions permettent d’afficher un mode maintenance avec un modèle personnalisé.

Authentification côté serveur (Nginx)

Avec Nginx, l’authentification est définie dans le fichier server.conf.

Protection par mot de passe depuis le panneau d’hébergement

Plesk et cPanel proposent leurs propres fonctions de protection par mot de passe des répertoires.

Restriction d’accès par passkey ou jeton

Les environnements de développement modernes peuvent utiliser des liens avec jeton à la place d’une demande de mot de passe.

Cet article a été traduit à l’aide de l’IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top