page sécurisée

toopolef
Invité n'ayant pas de compte PHPfrance

30 juin 2009, 15:34

Bonjour,
Sur mon site, je souhaite créer une page sécurisée.
J'ai créé un formulaire qui va vérifier les codes dans une base de données et la page elle même vérifie l'authentification à l'aide des sessions, afin qu'on ne puisse pas accéder directement à la page. Tout ceci fonctione bien. Mon problème concerne les fichiers (photo, fichier en téléchargement) qui sont dans cette page.
Car une personne sans code, qui connait l'url exacte d'un fichier dans cette page accède à tous les fichiers !!! Alors j'ai eu l'idée de protéger un répertoire dans lequel je mets les fichiers. Le problème, c'est que une fois les codes entrés, lorsqu'un fichier essaye de s'afficher, une fenetre système d'authentification apparait, donc deux fois l'authentification.
Comment faire pour faire une simple page correctement sécurisée (page web et fichier) avec une seule authentification ?
Merci à vous.

toopolef
Invité n'ayant pas de compte PHPfrance

30 juin 2009, 23:14

En clair, comment à l' aide d'un seul formulaire, accéder à la page et aux fichiers protégés par htaccess sans avoir le popup d'autentification d'htaccess ?

Merci bien

ViPHP
ViPHP | 1136 Messages

30 juin 2009, 23:36

En clair ,

je pense que ce que tu souhaites n'est pas réellement adéquate !

Personnellement , je gérerais les photos via une base de données ...

Explication :

A l'uplod d'une nouvelle photo , le script enregistre le nom d'origine en base , crée un nouveau nom du genre md5 , enregistre l'image dans un rep non accessible directement via le web , et lie dans la base , le nom d'origine , au chemin , et nouveau nom du fichier sur le serveur .

Ensuite , un client se connecte via ton système de session , il a la liste des images qu'il peut voir ,
lorsqu'il clique sur l'une d'elles , cette fois c'est ton script qui l'affiche sous le nom d'origine , sans jamais afficher le chemin réel ( qui de toute manière n'est pas accessible directement ).

Pour ce faire , tu devras jouer avec a fonction header() ..

Voilà , je pense que c'est une bonne solution à ton problème .. ainsi , plus besoin de fichier .htaccess

:-)

Good luck ,

Ch.

ViPHP
AB
ViPHP | 5818 Messages

01 juil. 2009, 02:09

Si tu veux garder tes fichiers dans un répertoire protégé par .htaccess il faut les faire afficher par php
Tu peux faire par exemple :

page de présentation (protégée par session)

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> </head> <body> <div> <img src="affiche.php?img=repertoire/nom_photo.jpg" /> <img src="affiche.php?img=repertoire/nom_photo2.jpg" /> </div> </body> </html>
Et la page "affiche.php" apellée (et protégée par session) pour l'affichage php.
$img = isset($_GET['img'])? $_GET['img'] :'';
header("Content-Type: image/jpeg");
readfile("$img");
Ainsi les personnes non authentifiées par la session ne pourront pas lire les fichiers dans le répertoire protégé.

TOOPOLEF
Invité n'ayant pas de compte PHPfrance

02 juil. 2009, 10:21

AB :
mon problème n'est pas l'accès aux fichiers pour les personnes autorisées, mais l'affichage d'une popup d'authentification lorsqu'un fichier du répertoire protégé est affiché.
1° page d'authentification php
2° accès à la page sécurisé : si que tu textes, pas de pb mais si texte + photo qui provient du repertoire protégé, ça affiche la popup d'authentification.

Est-ce qu'avec ton système ça supprime l'affichage de la pop pop ?

Merci bien