Installation et test de la version initiale

Problème, remarque...

L'accès aux documents est possible en tapant directement leur URL,
par exemple : http://127.0.0.1/eFormation/eFormationV1/Doc/budget.xls

La sécurité par fichier .htaccess

Fonctionnement

Un fichier ".htaccess" dans un répertoire indique au serveur WEB que son accès sera contrôlé : l'utilisateur devra saisir son identifiant et son mot de passe.

Un autre fichier contiendra la liste des identifiants et des mots de passe (son nom n'est pas imposé !).

exemple : [.htaccess] du répertoire de la formation n°3

AuthUserFile "C:\Program Files\EasyPHP1-8-ModGSI\www\eFormation\eFormationV2\.htpswr3"
AuthName "Accès sécurisé à la formation n°3"
AuthType Basic
<LIMIT GET POST>
  Require valid-user
</LIMIT>

La création d'un tel fichier ne peut se faire que via un éditeur, Windows interdisant le renommage  avec uniquement une extension.

Structure du fichier des mots de passe [.htpswr3]

abcd:abcd
efgh:efgh

Syntaxe identifiant:motDePasse peut être crypté, mais pas obligatoire (cf. ci-dessous)!

abcd:$apr1$LU4.....$SEwKt0QdrOFZBm5bmxnVo/
efgh:$apr1$LU4.....$kgZvXtobcFYMx2/bpIxpY1

Génération automatique

Par programmation PHP

Pré-requis : écrire dans un fichier texte

function fichierEcrire($unNomFic, $unContenu) { //cf. manuel PHP
  if (!$id = fopen($unNomFic, 'w')) {
    return "Impossible d'ouvrir le fichier ($unNomFic)";
  }
  if (fwrite($id, $unContenu) === FALSE) {
    return "Impossible d'écrire dans le fichier ($unNomFic)";
  }
  fclose($id);
  return "L'écriture de ($unContenu) dans le fichier ($unNomFic) a réussi";
}

Logique du programme :

  1. Se connecter à la base de données
  2. Exécuter la requête pour obtenir les utilisateurs et mots de passe en fonction du n° de la ressource
  3. Parcourir le jeu d'enregistrements
  4. et, pour chaque utilisateur, générer la chaîne <utilisateur>:<motDePasse>
  5. En fin de parcours, écrire l'ensemble des chaînes dans le fichier

Solution cf. 'genererAcces.php'

Le programme 'htpasswd.exe'

Programme en mode console qui génère et crypte un fichier de mots de passe.

Syntaxe : htpasswd.exe -b <nomDuFichier> <utilisateur> <motDePasse>

Localisation : C:\Program Files\EasyPHP1-8-ModGSI\apache\bin

La séparation PHP/HTML/CSS

Pour ceux qui ont encore du courage, une 3ème version (et dernière ?)...

Constat sur la version 2 :

_ l'utilisation des fichiers .htaccess nécessite maintenant une double identification !

_ le mélange du code PHP+HTML+CSS est fortement déconseillé !!!

Solution cf. la version 3