Protéger un dossier/page sur un serveur web.
Le serveur web Apache contient plusieurs modules d’authentification différents qui peuvent être utilisés pour vérifier la validité des informations saisies par l’utilisateur.
.htacces
Le .htaccess permet de contrôler l’accès aux fichiers et aux sous-répertoires du répertoire où il se trouve.
</p> <p>AuthUserFile /chemin absolu/www/exemples/paypal/protection/.htpasswd<br /> AuthName "Accès protégé"<br /> AuthType Basic<br /> Require valid-user</p> <p>
AuthUserFile :Indique à Apache l’endroit où il peut trouver le fichier contenant les mots de passe des utilisateurs autorisés. Ce fichier s’appelle souvent .htpass ou .htpasswd , mais vous pouvez lui donner n’importe quel nom car il n’a aucune importance, contrairement à son emplacement.
En effet, il ne doit pas se trouver dans l’arborescence des documents ni dans un répertoire ouvert.
C’est pourquoi je vous conseil de créer un dossier protection auquel vous retirez ses droits de lecture et écriture via votre ftp.
Sinon, vous pouvez mettre un .htaccess dans votre dossier protection en y écrivant:
</p> <p>deny from all</p> <p>
Ce .htacess interdit l’accès au dossier « protection » à n’importe qui (y comprit vous).
AuthName : Vous pouvez choisir n’importe quel nom pour l’espace à sécuriser, mais n’oubliez pas qu’il apparaîtra à vos visiteurs.
AuthType Basic : Comme il existe plusieurs méthode d’authentification différentes, nous devons indiquer celle que nous utilisons. Nous nous servons de l’authentification de base, à savoir Basic.
Require valid-user : Indique que n’importe quel utilisateur autorisé a le droit d’accéder aux pages.
QUESTION !!
Comment faire pour connaitre le chemin absolu?
(merci le site du zero ;))
- Créez un fichier appelé chemin.php.
- Inscrivez juste cette ligne de code à l’intérieur:
</p> <p><!--?php echo realpath('chemin.php'); ?--></p> <p>
- Envoyez ce fichier sur votre serveur avec votre logiciel FTP. Placez-le dans le dossier que vous voulez protéger.
- Ouvrez votre navigateur et allez voir ce fichier PHP. Il vous donne le chemin absolu, par exemple dans mon cas :
- /home/site/www/admin/chemin.php
- Copiez ce chemin dans votre .htaccess, et remplacez le chemin.php par .htpasswd, ce qui nous donne au final par exemple :
- /home/site/www/admin/.htpasswd
- Supprimez le fichier chemin.php de votre serveur, il ne nous sert plus à rien maintenant qu’il nous a donné le chemin absolu.
.htpasswd
Chaque ligne du .htpasswd contient un nom d’utilisateur, un signe deux points et le mot de passe chiffré de cet utilisateur.
</p>
<p>admin:4kbVXr4sKYo7w</p>
<p>
Pour remplir
votre .htpasswd, je vous invite a regarder cette page 😉