- Qu’est-ce qu’un fichier .htaccess ?
- Qu’est-ce qu’un fichier .htpasswd ?
- Où placer le fichier .htpasswd ?
- Protection par mot de passe avec .htaccess – Exemple
- Peut-on protéger uniquement des sous-dossiers ?
- Protection par mot de passe de domaines ou sous-domaines précis
- Avec quels serveurs web cette méthode fonctionne-t-elle ?
- Avantages et inconvénients de la protection par .htaccess
- La protection par mot de passe est-elle sûre ?
- Quelles sont les alternatives ?
- Liste blanche d’adresses IP
- Extension de mode maintenance
- Authentification côté serveur (Nginx)
- Protection par mot de passe depuis le panneau d’hébergement
- Restriction d’accès par passkey ou jeton
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
| Avantage | Inconvénient |
|---|---|
| Très simple à configurer | Ne fonctionne pas avec Nginx sans accès à la configuration du serveur |
| Aucune extension ni aucun logiciel nécessaire | La fenêtre de connexion ne peut pas être personnalisée |
| Protection côté serveur | Basic 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ée | Non sécurisé sans HTTPS |
| Fonctionne pour un site entier ou certains dossiers | Peut 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.