Tuto : Protéger un dossier par un mot de passe

Transcription

Tuto : Protéger un dossier par un mot de passe
Tutoriel:Protégerundossieravecmotde
passe
Danscetutoriel,jevaisvousexpliquercommentcréerundossierprotégerparunmotde
passe.Effectivement,celapeutnousservirdanslecasoùonvoudraitqueseulscertaines
personnesestaccèsàcertainsfichiers.
C'estlàquelesfichiers.htaccessvontbiennousaider:onpeuttrèsfacilementcréerune
protectionparLogin/Motdepassequiempêchel'accèsàtouslesfichiersdudossier.
Ilvafalloircréer2fichiers:
• .htaccess:cefichiercontiendral'adressedu.htpasswdetquelquesautres
optionsquevouspourrezdéfinir.
• .htpasswd:cefichiercontiendraunelistedelogins/motsdepasse,pourchaque
personneautoriséeàaccéderauxpages!
⇒ Créerle.htaccess
Icinousallonscréerunfichiersansnom,ouioui,unfichierquin’aqu’uneextension:
«.htaccess ».Cedernierdoitêtrecréésurvotredisquedur.Etdansceluisinous
n’allonspasécrireduHTML,niduPHPetencoremoinsduCSSmaissimpleducodeApache
quivaservird’instructionauserveurweb.
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/home/site/www/admin/.htpasswd"
Require valid-user
Parmices4lignes,ilyena2quevousallezdevoirchanger:
•
AuthName : c'estletextequiinviteral'utilisateuràinscriresonlogin/motdepasse.
Vouspouvezpersonnalisercetextecommebonvoussemble.
•
AuthUserFile : làc'estplusdélicat,c'estlecheminabsoluverslefichier
.htpasswd(quevousmettrezdanslemêmerépertoirequele.htaccess).
TUTORIEL:PROTEGERDOSSIERAVECMOTDEPASSE|JEROMEROUGET 1
Astuce:commenttrouverlecheminabsolu?
Eneffet,c'estlaplupartdutempsdélicatàtrouvercarceladépendduserveur.
Heureusement,ilexisteunefonctionPHPquivabeaucoupnousaider:realpath.
Cettefonctiondonnelecheminabsoluverslefichierquevousindiquez.Vousallezdoncfaire
commececipourtrouverlecheminabsolu:
1. Créezunfichierappeléchemin.php.
2. Inscrivezjustecettelignedecodeàl'intérieur:
<?php echo realpath('chemin.php'); ?>
3. EnvoyezcefichiersurvotreserveuravecvotrelogicielFTP.Placez-ledansledossierque
vousvoulezprotéger.
4. OuvrezvotrenavigateuretallezvoircefichierPHP.Ilvousdonnelecheminabsolu,par
exempledansmoncas:/home/site/www/admin/chemin.php
5. Copiezcechemindansvotre.htaccess,etremplacezlechemin.phppar.htpasswd,cequi
nousdonneaufinalparexemple:/home/site/www/admin/.htpasswd
6. Supprimezlefichierchemin.phpdevotreserveur,ilnenoussertplusàrienmaintenant
qu'ilnousadonnélecheminabsolu.
Astuce:Enregistrezlefichiereninscrivantlenomentreguillemets,commececi:
".htaccess".Celapermetdeforcerl'éditeuràenregistrerunfichierquicommence
parunpoint.
Voilà,onafinidecréerle.htaccess,onpeutmaintenantpasserau.htpasswd !
TUTORIEL:PROTEGERDOSSIERAVECMOTDEPASSE|JEROMEROUGET 2
⇒ Créerle.htpasswd
Créezmaintenantunnouveaufichieravecvotreéditeurdetexte.
Le.htpasswdvacontenirlalistedespersonnesautoriséesàaccéderauxpagesdu
dossier.Onyinscritunepersonneparligne,souscetteforme:
login:mot_de_passe_crypté
Aufinallefichierressembleraàpeuprèsàça:
jerome:4k7j5BYJVMIds
yoann:4kHbG8D5ysWdM
jordan:4k2Ml9dvgYDdk
andre:4koPaLGokx1hQ
Danscetexemple,ilya4personnesautoriséesàaccéderaudossier:jerome,yoann,jordan
etandre.
BienévidemmentilexisteunefonctionsimpleenPHPquipermetdecrypterunmotde
passequiest:
<?php echo crypt('mot_de_passe_non_crypté'); ?>
Cecryptageestindéchiffrable.Ilestàsensunique.
TUTORIEL:PROTEGERDOSSIERAVECMOTDEPASSE|JEROMEROUGET 3
Biensurlecryptagen’estpasduhasard,c’estpourquoijevaisvousdonnerlecodePHPqui
vouspermetdecrypterunmotdepasse.Ilnevousresteplusqu’acréerunfichiernommé
«crypt_passwd.php»,copier-collerlecodeci-dessous,enl’envoyerversvotreserveurFTP.
Autrement,sivousavezlaflemmedecréercefichierPHPvouspouveztoujourscryptervos
motsdepasseàl’adressesuivante:http://jerome.rouget.org/crypt_passwd.php
<p>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
$pass_crypte = crypt($_POST['pass']);
// On crypte le mot de passe
echo 'Ligne à copier dans le .htpasswd :<br />' . $login . ':' .
$pass_crypte;
}
else // On n'a pas encore rempli le formulaire
{
?>
</p>
<p>Entrez votre login et votre mot de passe pour le crypter.</p>
<form method="post">
<p>
Login : <input type="text" name="login"><br />
Mot de passe : <input type="text" name="pass"><br /><br />
<input type="submit" value="Crypter !">
</p>
</form>
<?php
}
?>
TUTORIEL:PROTEGERDOSSIERAVECMOTDEPASSE|JEROMEROUGET 4
⇒ EnvoyerlesfichierssurleserveurFTP.
Vousavezmaintenant2fichierssurvotredisquedur:
«.htaccess » et«.htpasswd.»
LancezvotrelogicielFTP.Transférezlesfichiers.htaccesset.htpasswd dansle
dossierquevousvoulezprotégerparmotdepasse.Vousdevriezvoircecidansvotre
logicielFTP:
Voilà,désormaisledossierestprotégé
Siquelqu'unessaied'accéderàunedespagesdudossier(enl'occurrenceadmin.php),il
obtiendraunefenêtrecommecelle-ciluidemandantdeselogger:
Sil’utilisateurestenregistrédanslefichier.htpasswd alorsilauraaccèsaufichier
admin.php
Pourajouterdenouveauxutilisateursilsuffirademodifierlefichier
.htaccess
Cetutoestterminé,n’hésitezpasàm’envoyerunmailàl’aidedelapage
contact(http://jerome.rouget.org/contact.php)encasd’erreurouautres.
TUTORIEL:PROTEGERDOSSIERAVECMOTDEPASSE|JEROMEROUGET 5

Documents pareils