Protéger un site de préproduction Apache avant de le présenter à un client
Un site de préproduction est censé être temporaire, mais il peut tout de même exposer des maquettes inachevées, des notes privées, des comptes de test et des fonctionnalités qui ne sont pas prêtes à être publiques. Partager un lien de prévisualisation avec un client est pratique. Partager ce lien sans protection demande davantage de précautions.
Pour un petit projet hébergé sur Apache, l’authentification HTTP Basic peut ajouter un contrôle d’accès pendant la revue du site par l’équipe. Elle ne remplace pas une conception sécurisée de l’application, mais constitue une protection utile si elle est correctement configurée et testée.
Commencez par un mot de passe réservé à la prévisualisation
Ne réutilisez ni un mot de passe administrateur ni les identifiants d’un compte personnel. Générez un secret unique pour la préproduction et conservez-le avec l’URL dans un gestionnaire de mots de passe. Le générateur de mots de passe et de phrases de passe propose des caractères aléatoires ou des mots tirés au hasard. Un mot de passe composé de caractères est un bon choix lorsque le gestionnaire le saisira pour vous.
Si plusieurs personnes ont besoin d’un accès, envisagez des comptes distincts pour pouvoir retirer l’accès d’une personne sans changer le mot de passe de tout le monde. Pour choisir vos identifiants, consultez Comment choisir un mot de passe ou une phrase de passe robuste et Découvrez le nouveau générateur de mots de passe et de phrases de passe.
Créez une entrée de mot de passe compatible avec Apache
Apache peut vérifier les identifiants HTTP Basic à partir d’un fichier .htpasswd. Chaque entrée associe un nom d’utilisateur à une empreinte de mot de passe à sens unique. L’empreinte est installée sur le serveur ; la personne qui consulte le site saisit le mot de passe d’origine.
Utilisez le générateur htpasswd pour créer une ligne username:hash. Si votre installation Apache le prend en charge, privilégiez l’option bcrypt de l’outil. Son coût par défaut est de 10 ; les valeurs 11 et 12 sont disponibles si elles conviennent à votre serveur et à son trafic. L’outil propose aussi Apache MD5 / APR1 pour les systèmes anciens ; ne choisissez pas APR1 pour une nouvelle configuration simplement par habitude.
L’article sur la mise à jour du générateur htpasswd : bcrypt, coût réglable et Apache MD5 explique les compromis. Le générateur crée uniquement l’entrée : il ne configure pas Apache et ne restreint pas l’accès à lui seul.
Placez le fichier de mots de passe hors de la racine web
Installez ce fichier à un emplacement que le serveur web peut lire, mais que les visiteurs ne peuvent pas télécharger comme un fichier public. Si la configuration Apache autorise les directives d’authentification dans .htaccess, voici un exemple :
AuthType Basic
AuthName "Client preview"
AuthUserFile /srv/secure/client-preview.htpasswd
Require valid-user
Remplacez le chemin d’exemple par le véritable chemin absolu sur le système de fichiers, et vérifiez que la configuration des accès du serveur autorise ces directives. Certains hébergeurs exigent des réglages équivalents dans la configuration de l’hôte virtuel plutôt que dans .htaccess.
Servez la prévisualisation en HTTPS. L’authentification HTTP Basic ne chiffre pas elle-même les identifiants ; le chiffrement du transport est indispensable. Si le site se trouve derrière un proxy inverse, un CDN ou le routeur d’une plateforme, vérifiez quelle couche applique réellement la restriction. Les fichiers Apache .htaccess ne fonctionnent pas sur toutes les plateformes d’hébergement.
Vérifiez les accès autorisés et refusés
Une demande de connexion ne suffit pas à prouver que la préproduction est protégée. Vérifiez son comportement depuis une fenêtre de navigation privée ou un autre appareil :
- Ouvrez une URL protégée sans identifiants. Vous devez obtenir une demande d’authentification ou un refus d’accès, et non la page privée.
- Connectez-vous avec le compte dédié à la prévisualisation. Vérifiez que les pages et ressources prévues se chargent.
- Essayez un mot de passe incorrect et vérifiez que l’accès est refusé.
- Contrôlez les autres URL sensibles, les points d’accès API et les fichiers téléchargeables. Protéger une page ne protège pas automatiquement chaque route ou emplacement de stockage.
Vous pouvez utiliser cURL pour examiner le comportement HTTP en dehors du navigateur. Le créateur de commandes cURL aide à préparer des requêtes courantes, tandis que le guide cURL explique les options d’authentification HTTP. Pour une authentification Basic dans un terminal, curl --user 'preview' 'https://staging.example.com/' demande le mot de passe si vous l’omettez de l’argument --user. Remplacez l’adresse d’exemple par une adresse de test que vous êtes autorisé à utiliser.
Le seul code de réponse ne constitue pas un test de sécurité complet. Suivez les redirections si nécessaire, examinez le contenu renvoyé et vérifiez que des ressources non protégées n’exposent pas des éléments réservés aux personnes chargées de la revue.
Traitez les données de démonstration comme potentiellement publiques
L’authentification est utile, mais le contenu de préproduction mérite lui aussi de l’attention. Évitez les copies de données réelles de clients, les mots de passe de production et les exports confidentiels. Créez du contenu sans risque pour les pages inachevées avec le générateur de Lorem Ipsum, qui produit du texte brut et des listes HTML.
Si la prévisualisation affiche du texte ou du balisage fourni par les utilisateurs, évitez de l’insérer directement avec des API HTML non sécurisées. L’article Échappement ou assainissement HTML : quand utiliser chaque méthode explique pourquoi afficher du texte littéral et restituer une mise en forme autorisée sont deux opérations distinctes.
Les directives pour les moteurs de recherche, comme noindex et robots.txt, peuvent réduire les découvertes accidentelles, mais elles ne contrôlent pas l’accès. Utilisez-les en complément, jamais pour remplacer l’authentification.
Prévoyez la fermeture de la prévisualisation
Avant d’envoyer le lien, déterminez qui a besoin d’un accès et quand la prévisualisation sera retirée. Supprimez les identifiants à la fin de la revue, renouvelez les secrets partagés après une diffusion large et ne laissez pas indéfiniment en ligne des sites de préproduction inutilisés. Une courte liste des actions de fermeture est aussi utile que la demande de mot de passe initiale.
Pour commencer, générez un mot de passe de prévisualisation unique, créez une entrée htpasswd Apache compatible et vérifiez la restriction en dehors de votre session habituelle. La prévisualisation est prête à être partagée lorsque les personnes autorisées peuvent y accéder et que les autres ne le peuvent pas.