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