TUTO PHP - Sécuriser du contenu avec .htpasswd

PrimFX Boris ('PrimFX') Le 10 juillet 2016

Même si ce n'est pas a proprement parler du PHP que nous allons utiliser dans ce tuto, il nous sera utile pour créer nos fichiers de configuration de serveur Apache afin de sécuriser du contenu tel que des dossiers ou des fichiers seuls.

Protéger un fichier avec htpasswd

  • .htaccess
<FilesMatch "admin.php">
   AuthName "Ceci est du contenu securise"
   AuthType Basic
   AuthUserFile "I:\wamp\www\protege\securise\.htpasswd"
   Require valid-user
</FilesMatch>
  • securise/.htpasswd
pseudo:motdepasse
  • admin.php
Ceci est la page d'administration !

Protéger un dossier avec htpasswd

  • dossier_securise/.htaccess
AuthName "Ceci est du contenu securise"
AuthType Basic
AuthUserFile "I:\wamp\www\protege\securise\.htpasswd"
Require valid-user
  • dossier_securise/.htpasswd
pseudo:motdepasse

A savoir

Il faut obligatoirement indiquer le chemin absolu vers le fichier .htpasswd qu'il est possible de récupérer en utilisant la fonction realpath() de PHP.

Dans le fichier .htpasswd, si le pseudo doit être écrit sans être encrypté ou haché, ce n'est pas le cas du mot de passe qui lui doit être crypté soit via la fonction crypt() de PHP, soit en utilisant un générateur de fichier .htpasswd comme celui-ci (les algorithmes de cryptage utilisés pour former les mots de passe destinés aux .htpasswd diffèrent en fonction des serveurs, systèmes d'exploitations, versions de PHP, etc.).

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 6

  • bilbil Le 23 octobre, à 19:13 | Répondre

    Bonjour à tous
    Ayant trouver la solution ,je me répond à moi méme si ça peut en aider d'autre.Je suis sur un raspberry et un serveur APACHE.Par défaut les fichier .htaccess sont désactivé et il faut aller dans la config d'apache.En mode console sur le raspberry il faut taper la commande:
    sudo nano /etc/apache2/apache2.conf
    Puis, cherchez les lignes :
    AllowOverride None
    Et remplacez-les par
    AllowOverride All
    Voila ça marche bien pour moi,merci a primefx pour tout ce travail grace auquel j ai creer le moteur de mon site.(espace membre,creation d'article,recuperation d un mot de passe,creation d un espace d'administration et pour finir la securisation de cet espace administration).Ce que j'aime avec ces tutu c'est que cela n'est pas du tout cuit et il faut adapter et personnaliser ce qui m'a pousser a chercher et a apprendre un minimum le php et mysql.En tout cas merci pour ce travail.Maintenant que le moteur du site est fait je vais m'attaquer à la carrosserie.Je vais voir le CSS.
    A bientot peut etre on sait jamais

  • bilbil Le 19 octobre, à 23:21 | Répondre

    bonjour a tous
    cela ne marche pas pour moi.Je suis sur un raspberrypi et mon site est sur un disque dur connecté et monté au/sur raspberry.
    Quand je fait ma page php pour avoir le chemin absolu,voila ce que j'obtient:
    /media/blackbox/monsite/ncv/admin.php
    le contenu de mon .htaccess
    <FilesMatch "coucou.php">
    AuthName "Ceci est du contenu securise"
    AuthType Basic
    AuthUserFile "/media/blackbox/monsite/ncv/.htpasswd"
    Require valid-user
    </FilesMatch>
    Si vous avez une piste ,je suis preneur
    d'avance merci

  • JulesFX Le 18 janvier, à 00:57 | Répondre

    Super tutoriel !

  • gabyramb Le 16 janvier, à 18:09 | Répondre

    Bonjour,
    Dans le tuto 3 "Miniatures" la fonction 'exif_imagetype' ne fonctionne pas dans mon EasyPhp.
    Bravo quand même si la locution est un peu trop rapide pour bien suivre.

  • Dinars Le 5 janvier, à 19:26 | Répondre

    Bonjour, après avoir suivi votre tuto, mes fichiers .httpacess et .httppassword n'ont pas l'air de fonctionner sous Wamp. Merci de m'expliquer

  • Sosobou17 Le 15 octobre, à 14:33 | Répondre

    Merci primfx