Php 4 Htaccess

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Php 4 Htaccess as PDF for free.

More details

  • Words: 1,232
  • Pages: 6
PHP Création d'une admin protégée par un .htaccess et un .htpasswd

php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 1

.htaccess et .htpasswd Les .htaccess permettent de sécuriser un tant soit peu un dossier. Le fichier .htaccess va généralement faire référence à un fichier .htpasswd. Le .htpasswd va contenir le login et le mot de passe séparés par 2 points : exemple

monLogin:monPassXYZ

Le mot de passe va être crypté pour que même lors de la lecture du fichier .htpasswd en local le mot de passe ne soit pas accessible.

Créez un nouveau document creaHtaccess.php dans le dossier login Dans ce document créez un formulaire qui va permettre la création des fichiers.


Login :

clé mot de passe



Le fichier .htaccess va faire référence au document .htpasswd et ce, de façon absolue. Le chemin absolu va être connu avec $_SERVER['DOCUMENT_ROOT'] sur mon ordinateur le chemin $_SERVER['DOCUMENT_ROOT'] est : /Users/stephanejeanneau/web01/formations/_miniSitePhp à ce chemin je vais ajouter l'endroit ou est stocké le .htpasswd . /php/.htpasswd Sous win le .htpasswd pourrait être stocké sous C:/.htpasswd et en clair php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 2

Contenu du fichier .htaccess AuthUserFile va faire référence au document qui contient le login et mot de passe, donc le fichier .htpasswd AuthUserFile chemin/vers/le/fichier/.htpasswd

AuthName va afficher le message dans la fenêtre d'invite du navigateur. AuthName "Acces Restreint"

AuthType va décider de la sécurité du login. L'autre méthode est digest pour https à partir de php 5.1.0 AuthType Basic

require valid-user Ces trois ligne vont décider de la méthode d'autentification l'élément require valid-user peut être remplacé par require user nomUtilisateur ou nomUtilisateur est un login. Une option supplémentaire peut être initialisée c'est celle du document à utiliser lors d'une erreur. Ces documents sont placés au niveau racine dans ces exemples. Notez aussi que les ressources contenues dans ces docs doivent être en lien absolu. Ces méthodes sont généralement placées au début du document. ErrorDocument 405 /error405.php ErrorDocument 404 /error404.php ErrorDocument 403 /error403.php ErrorDocument 401 /error401.php ErrorDocument 400 /error400.php

Méthode non autorisée Document non trouvé Interdit sans indication Identification requise Requête non comprise

Toutes les erreurs de Apache en français sur le site officiel : http://www.apachefrance.com/Articles/7/imprime/ Un .htaccess peut aussi ne contenir que les indications vers une page d'erreur, placé au niveau racine il vous permettra de personaliser vos pages d'erreur. php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 3

Éléments utilisés dans le formulaire crypt crypt va générer un chiffrage indéchiffrable (hashing) variable = crypt ( $string , $salt ); crypt() retourne la chaîne str chiffrée avec l'algorithme standard Unix DES, ou bien un des algorithmes disponibles sur la machine. L'argument optionnel salt sera utilisé comme base pour le chiffrement. Si l'argument salt n'est pas fourni, PHP en générera un lui-même, à chaque appel à cette fonction. Dans notre cas le salt devra faire impérativement 2 caractères. string quant à lui devra faire au moins 2 caractères, dans le formulaire il est limité à 15 caractères maxi.

file_exists va vérifier si un fichier existe. file_exists() retourne TRUE si le fichier filename existe, et FALSE sinon. Sous Windows, utilisez le format de chemin //computername/share/filename ou \\\\computername\share\filename pour vérifier qu'un fichier est disponible sur le partage réseau. $fichier = "testOpen.php"; if(!file_exists($fichier)){ echo "$fichier n'existe pas"; }else{ echo "$fichier existe"; }

fopen va gérer l'ouverture d'un fichier ou d'une URL. Si le fichier n'existe pas il sera créé. fopen($filename, $mode); Liste des modes possibles pour la fonction fopen() en utilisant le paramètre $mode 'r'

Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.

'r+' fichier.

Ouvre en lecture et écriture, et place le pointeur de fichier au début du

'w' Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer. php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 4

'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer. 'a' Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. 'a+' Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. 'x' Crée et ouvre le fichier en lecture seule ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux. 'x+' Crée et ouvre le fichier en lecture et écriture ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer.Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux. fopen("testOpen.php",'w+');

fseek va modifier la position du pointeur de fichier. fseek(0); va placer le pointeur en début de fichier. fputs($handle , $string, $length) fputs écrit le contenu de la chaîne string dans le fichier pointé par handle . Si la longueur length est fournie, l'écriture s'arrêtera après length octets, ou à la fin de la chaîne (le premier des deux).

fflush($handle); fflush va envoyer tout le contenu généré ($handle) dans un fichier. $handle est un fichier ouvert avec fopen().

fclose ( $handle ) fclose() va fermer le fichier handle ouvert avec fopen(); Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. chdir($nomDuDossier); chdir va changer le dossier courant pour $nomDuDossier. chdir('../php/');

php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 5

Le login est $id le mot de passe est $password, celui crypté est : $mdpCrypt
"; if(!file_exists($fichierHtaccess)){ // fopen($fichierHtaccess,'w+'); $fichierHtaccessEcrit = fopen($fichierHtaccess,'r+'); //retour au début du doc fseek($fichierHtaccessEcrit,0); //puis ajoute le code dans le doc $ecriture = "AuthUserFile $racine/php/.htpasswd\nAuthName \"Acces Restreint\"\nAuthType Basic\n\nrequire valid-user\n"; fputs($fichierHtaccessEcrit,$ecriture); //envoie les données fflush($fichierHtaccessEcrit); //ferme le doc fclose($fichierHtaccessEcrit);

} ///--chdir('../php/'); if(!file_exists($fichierPassword)){ // fopen($fichierPassword,'w+');

$fichierPasswordEcrit = fopen($fichierPassword,'r+'); //retour au début du doc fseek($fichierPasswordEcrit,0); //puis ajoute le code dans le doc $ecriturePw = $id.":".$mdpCrypt; fputs($fichierPasswordEcrit,$ecriturePw); //envoie les données fflush($fichierPasswordEcrit); //ferme le doc fclose($fichierPasswordEcrit); chdir('../login/'); } }else{ $mssg = "Entrez des données dans chaque champ activez le bouton et souvenez vous de l'id et du mot de passe."; } echo "

".$mssg."

"; ?>

php partie 4 - © S. Jeanneau sjcpi.fr Session École Multimédia - 2008 Page n° 6

Related Documents

Php 4 Htaccess
May 2020 0
Htaccess
August 2019 2
.htaccess
November 2019 2
Htaccess
June 2020 0
Php 4
May 2020 3
Php Dersleri 4
June 2020 3