Protéger un dossier avec un.htaccess



Documents pareils
Utilisation de l espace personnel (Serveur DATA)

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Formulaire pour envoyer un mail

Live box et Nas Synology

Utilisation de GalaxShare

TP Service HTTP Serveur Apache Linux Debian

Louer et utiliser un Hébergement Mutualisé OVH (Version 1.0)

Module 7 : Configuration du serveur WEB Apache

Comment mettre en ligne un site WordPress local

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

SERVEUR DE MESSAGERIE

ISPConfig Documentation

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

SERVEUR DE MESSAGERIE

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Rapports d activités et financiers par Internet. Manuel Utilisateur

GUIDE D'UTILISATION: Comment installer la Renault Media Nav Toolbox? GUIDE D'UTILISATION: Comment créer une empreinte digitale de votre appareil sur

Les premiers pas. Manuel

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Objectifs de la formation : Savoir réaliser la maintenance et l'administration de premier niveau sur un réseau d'établissement SCRIBE.

RÉALISATION D UN SITE DE RENCONTRE

COMMENT CRÉER UN «DOODLE»?

CAHIER DES CHARGES SITE WEB : Steve Mind Magicien Close-up & Mentaliste - 1 -

Installation de Joomla avec Filezilla

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Procédure d'installation complète de Click&Decide sur un serveur

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Démonstration de la mise en cache via HTML 5 sur iphone

1. Introduction Création d'une requête...2

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Un serveur web, difficile?

Comment accéder à d Internet Explorer

LA PLATE-FORME D'ALTERN C

Espace FOAD IRTS Guide de l étudiant Septembre 2009

Service de certificat

Gestion des applications, TI. Tout droits réservés, Marcel Aubin

Un serveur FTP personnel, ça ne vous a jamais dit?

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Création d'un questionnaire (sondage)

WordPress :: Migrer son site du local vers le serveur en ligne

Comment créer vos propres pages web?

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Septembre 2012 Document rédigé avec epsilonwriter

SUPPORT DE COURS / PHP PARTIE 3

Playzilla - Chargement par clé usb

Gestion d Active Directory à distance : MMC & Délégation

Qu est ce qu une bibliothèque?

Dans cette Unité, nous allons examiner

Utiliser un client de messagerie

Pratique et administration des systèmes

Comment faire pour créer ses propres pages html?

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

Comment développer et intégrer un module à PhpMyLab?

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Installation d'un serveur DHCP sous Windows 2000 Serveur

Initiation à html et à la création d'un site web

Jean-Louis Cech descente des Princes des Baux Orange Orange : 20 juin 2014.

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Accès distant Freebox v6 Configuration

Navigation dans Windows

Comment créer un site web Proxy gratuitement!

A.-M. Cubat Mise à jour de PMB Passer à une version plus récente du logiciel Page 1 Source :

Présentation Serveur Apache et pour RePeGlio

Comment faire plus d'argent cet été!

Configuration du WIFI

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Fiche Technique. Présentation du problème. Les sites de stockage. Les sites applicatifs avec possibilité de stockage

Mettre à jour PrestaShop

Monter automatiquement des disques distants ou locaux avec automount/autofs

Mise en place d un serveur Proxy sous Ubuntu / Debian

Administration du site (Back Office)

La magie de SVN. Découverte & usage du logiciel

Utiliser un CMS: Wordpress

\ \ / \ / / \/ ~ \/ _ \\ \ ` \ Y ( <_> ) \ / /\ _ / \ / / \/ \/ \/ Team

Travaux Pratiques Introduction aux réseaux IP

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Sauvegarder et restaurer les données PMB

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

TAGREROUT Seyf Allah TMRIM

Fiche Pratique. Etape 1 : Retrouver la clé depuis votre PC connecté.

Gestion des utilisateurs : Active Directory


LINUX REMPLAÇANT WINDOWS NT

LE CMS GUPPY. 2) Décompression : Elle se fait simplement avec le logiciel 7-Zip ou tout autre logiciel.

Parallels Plesk Panel. Module Pare-feu de Parallels Plesk Panel 10 pour Linux/Unix. Guide de l'administrateur

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Système clients serveur Kwartz Vulgarisation, identification, dossier personnel

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Fais ton site internet toi-même

claroline classroom online

CONNECTEUR PRESTASHOP VTIGER CRM

Edmodo. Edmodo est une plateforme dont l'apparence ressemble beaucoup à celle de Facebook, mais qui est entièrement dédiée à un usage scolaire.

Transcription:

1 sur 6 25/06/2012 15:03 4 176 Zéros connectés 313 449 Zéros inscrits Inscription Connexion Pseudo Mot de passe Mot de passe oublié? Connexion auto. Connexion avec un compte : Protéger un dossier avec un.htaccess Par Mathieu Nebra (M@teo21) Mise à jour : 03/04/2010 Difficulté : Facile 119 355 visites depuis 7 jours, dont 3 032 sur ce chapitre classé 2/782 Lorsque vous réalisez votre site en PHP, vous êtes souvent amenés à créer une zone «Admin» où l'accès est limité Et il vaut mieux, vu que les personnes qui ont accès à la zone Admin peuvent en général tout supprimer si elles le désirent. Supposons que vous ayez créé un dossier «Admin» dans lequel il y a tous les fichiers d'administration de votre site. Comment empêcher que n'importe qui accède à ces pages? C'est là que les fichiers.htaccess vont bien nous aider : on peut très facilement créer une protection par login/mot de passe qui empêche l'accès à tous les fichiers du dossier. Il va falloir créer deux fichiers :.htaccess : ce fichier contiendra l'adresse du.htpasswd et quelques autres options que vous pourrez définir ;.htpasswd : ce fichier contiendra une liste de logins/mots de passe, pour chaque personne autorisée à accéder aux pages! Sommaire du chapitre : Webdesign - Formation à Distance par EMWEB - l'école des métiers de l'internet. www.emweb.fr/webdesign Créer le.htaccess Créer le.htpasswd

2 sur 6 25/06/2012 15:03 Envoyer les fichiers sur le serveur Créer le.htaccess La première étape est de créer sur votre disque dur un fichier appelé.htaccess. Oui, c'est un fichier qui n'a pas de nom et qui a seulement une extension, à savoir.htaccess. Ne soyez donc pas étonnés s'il commence par un point. Ouvrez un nouveau fichier avec votre éditeur de texte favori. Nous allons écrire des codes qui n'ont rien à voir avec du HTML ou du PHP : ce sont des instructions pour le serveur. Elles vont lui expliquer que seules certaines personnes sont autorisées à accéder au dossier. Copiez-y ce code : AuthName "Page d'administration protégée" AuthType Basic AuthUserFile "/home/site/www/admin/.htpasswd" Require valid-user Parmi ces quatre lignes, il y en a deux que vous allez devoir changer : AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login et son mot de passe. Vous pouvez personnaliser ce texte comme bon vous semble ; AuthUserFile : là c'est plus délicat ; c'est le chemin absolu vers le fichier.htpasswd (que vous mettrez dans le même répertoire que le.htaccess). Mais comment je trouve ce chemin absolu, moi? En effet, la plupart du temps, cela s'avère délicat à trouver car cela dépend du serveur. Heureusement, il existe une fonction PHP qui va beaucoup nous aider : realpath. Cette fonction donne le chemin absolu vers le fichier que vous indiquez. Vous allez donc faire comme suit pour trouver le chemin absolu. 1. 2. Créez un fichier appelé chemin.php. Inscrivez juste cette ligne de code à l'intérieur : <?php echo realpath('chemin.php');?> 3. Envoyez ce fichier sur votre serveur avec votre logiciel FTP, et placez-le dans le dossier que vous voulez protéger. 4. 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 5. 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 6. Supprimez le fichier chemin.php de votre serveur, il ne nous sert plus à rien maintenant qu'il nous a donné le chemin absolu. Si vous êtes hébergés chez Free, il y a une petite subtilité dans la gestion de la localisation du.htpasswd : vous ne devez pas renseigner la ligne AuthUserFile par le chemin absolu du fichier, mais par son chemin relatif à partir de la racine de votre espace perso. Exemple : si vous utilisez un espace Free nommé monftpfree, et que vous placez votre fichier.htpasswd dans un répertoire admin, le fichier chemin.php vous renverra un chemin sous la forme /mnt/xxx/sda/x /X/monftpfree/admin/.htpasswd. Vous devez alors simplement écrire : /monftpfree/admin/.htpasswd. Enregistrez le fichier en inscrivant le nom entre guillemets, comme ceci : ".htaccess". Cela permet de forcer l'éditeur à enregistrer un fichier qui commence par un point. Voilà : on a fini de créer le.htaccess, on peut maintenant passer au.htpasswd! ;-)

3 sur 6 25/06/2012 15:03 Créer le.htpasswd Créez maintenant un nouveau fichier avec votre éditeur de texte. Le.htpasswd va contenir la liste des personnes autorisées à accéder aux pages du dossier. On y inscrit une personne par ligne, sous cette forme : login:mot_de_passe_crypté Au final, votre fichier.htpasswd devrait ressembler à ceci : mateo21:$1$meqt//cb$havid.qmmsgfw/wdlifq81 ptipilou:$1$/lgp8dya$sqnxccp47khp1snerizoo0 djfox:$1$lt7nqnsg$cvtopfe0igrjes7ushmoy. vincent:$1$h4ovhp3o$x7ejpn.uuohjrkt3qnw3i0 Dans cet exemple, il y a quatre personnes autorisées à accéder au dossier : mateo21, ptipilou, djfox et vincent. Comment peut-on crypter les mots de passe? Bonne question! Encore une fois, il y a une super fonction PHP qui va nous tirer d'affaire : crypt. Vous lui donnez un mot de passe et elle vous le crypte (ne cherchez pas à savoir comment). Par exemple, si mon mot de passe est «kangourou», voici le code PHP que je devrai écrire pour l'obtenir en version cryptée : <?php echo crypt('kangourou');?> Crypter ses mots de passe est très utile : en effet, si quelqu'un vient un jour à lire votre fichier.htpasswd (quelqu'un qui utilise le même PC que vous par exemple), il ne verra que le mot de passe crypté. Et là, aucun risque qu'il ne retrouve votre mot de passe : ce cryptage est indéchiffrable. Il est à sens unique (il s'agit en fait d'une autre forme de hachage que l'on a découvert dans le TP espace membres). Bon : on pourrait en théorie s'arrêter là pour le.htpasswd, mais mon âme de codeur PHP me commande de créer un petit script qui va bien vous être utile (non, non, ne me remerciez pas, c'est tout naturel!). <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 {?>

4 sur 6 25/06/2012 15:03 </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 }?> Essayer! Il y a deux parties dans ce code : 1. SI les variables $_POST['login'] et $_POST['pass'] existent, alors c'est qu'on vient de valider le formulaire. On crypte le mot de passe qu'on a entré, et on affiche $login:$pass_crypte pour que vous n'ayez plus qu'à copier la ligne dans le.htpasswd ; 2. SINON, si les variables $_POST['login'] ou $_POST['pass'] n'existent pas, on affiche donc le formulaire pour demander d'entrer un login et un mot de passe. Le formulaire recharge la même page car il n'y a pas d'attribut action dans la balise <form>, comme on l'a vu dans le chapitre sur les formulaires. Lors du rechargement de la page, les variables $_POST['login'] et $_POST['pass'] existeront puisque vous venez d'entrer le login et le mot de passe. Ce dernier sera alors crypté! Je vous conseille de créer cette page quelque part sur votre disque dur (ou sur votre serveur, peu importe), pour que vous puissiez crypter rapidement vos mots de passe pour le.htpasswd. Si vous avez la flemme de la créer, pas de souci, vous n'avez qu'à vous servir du code web ci-dessus. Il y a certains cas dans lesquels vous ne devrez pas crypter les mots de passe. Sous WAMP ou sur les serveurs de Free.fr par exemple, vous ne DEVEZ PAS crypter vos mots de passe pour que cela fonctionne. Vous devrez donc les écrire directement. Par exemple : mateo21:kangourou Envoyer les fichiers sur le serveur Vous avez maintenant deux fichiers sur votre disque dur :.htaccess et.htpasswd. Lancez votre logiciel FTP. Transférez les fichiers.htaccess et.htpasswd dans le dossier que vous voulez protéger par un mot de passe. Vous devriez voir ce qui se trouve à la figure suivante dans votre logiciel FTP. Le contenu du dossier admin vu dans le logiciel FTP Voilà : désormais, le dossier est protégé. ;-) Si quelqu'un essaie d'accéder à l'une des pages du dossier (en l'occurrence admin.php), il obtiendra une fenêtre comme celle de la figure suivante lui demandant de se logger.

5 sur 6 25/06/2012 15:03 Le navigateur demande le mot de passe Si vous entrez le bon login avec le bon mot de passe, vous serez alors autorisés à accéder aux pages! Partager Tweet 194 commentaires pour "Protéger un dossier avec un.htaccess" Note moyenne : 3.61 / 4 (2556 votes) Pseudo snort84 # Posté le 28/05/2012 à 12:47:05 Commentaire Bonjour La méthode alternative citée pour creer le fichier.htaccess pour les hebergements sous free ne fonctionne pas Le probleme est au niveau de la ligne PerlSetVar AuthFile le chemin doit être a partir de la racine du ftp et non a partir du nom de domaine donc : admin/.htpasswd et non pas /monftpfree/admin/.htpasswd ZCFORT # Posté le 28/05/2012 à 17:57:58 Citation : Samoir Probleme sa m'affiche sa >"Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, null@easy-hebergement.fr and inform them of the time the error occurred, and anything you might have done that may have caused the error. Ville : Beni khalled Pays : Tunisie More information about this error may be available in the server error log." Slt ça ne fonctionne pas avec wamp sur local. La première essaie, la fenêtre va se déclencher, mais dans la deuxième essaie,le message va apparaître. Alors là un redémarrage de wamp est requis. roillion # Posté le 12/06/2012 à 21:00:32

6 sur 6 25/06/2012 15:03 Pseudo Citation : arropsy1 Commentaire C'est super sauf que j'ai utiliser le script pour crypter mon mot de passe et il refuse de m'authantifier avec il me fait recommencer comment résoudre ce problème? dragonsworld C'est que tu as mal rentrée ton chemin. C'est l'étape du plus dure (pour dire la difficulté du tuto ) C'est rapide et efficace. Parfait quoi Avis : Très bon Site créé grâce au sdz, j'ai nommé: DragonsWorld Musemul # Posté le 20/06/2012 à 23:45:55 Bonsoir, la fonction crypt() ne me donne pas un mot de passe crypté valable pour un hébergement mutualisé chez ovh, j'ai du utiliser un shell pour en obtenir un crypté, mais beaucoup plus court :/ ça vient du serveur ou d'autre chose selon vous? Apollo83 # Posté aujourd'hui à 10:53:01 Bonjour, j'ai un petit souci: Protéger un dossier avec un.htacces, cette technique est-elle dépendante du serveur sur lequel je suis hébergé? Car malgré avoir fait toutes les manipulations nécessaires, le fichier que je souhaite protéger ne l'est pas, C'est à dire que je peux atteindre le fichier normalement, sans avoir a entrer un mot de passe... Avis : Mitigé Cdlt! David Voir tous les commentaires