Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2007, 17h02   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2003
Messages : 20
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 20
Points : 10
Points : 10
Par défaut Restriction d'acces a un repertoire SANS htaccess

Bonjour,

Je vous explique mon probleme. J'ai disons un site tout simple qui permet de voir des albums photos. Les utilisateurs peuvent se loger et l'acces a certains albums ( repertoires ), est limite a certains groupes d'utilisateurs.

Il est tres simple de gerer au niveau du php qui peut voir quoi. Mon probleme se situe au niveau des repertoires contenant les images. Si l'utilisateur rentre l'url en dur, il aura acces a des images qu'il ne devrait normalement pas voir ( humm humm ).

Hors de question que j'utilise des noms de rep tordu, je trouve que c'est une solution barbare.

J'ai aussi pense au .htaccess, que je pourrais creer/modifier dynamiquement, mais cela pose un gros probleme. L'utilisateur devra s'identifier 2 fois ( pour la partie PHP ET pour chaque rep auquel il voudrait acceder ). Je trouve ca tres moyen aussi.

Si des experts ont des idees je suis preneur. Par exemple lier l authentification par htacces et celle presente sur le site.

Merci d'avance,

Np.
bl4d3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 19h35   #2
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
moi je peux te proposer un truc que j'utilise :

1ere étape : tu mets tous les fichiers à protéger dans un dossier NON ACCESSIBLE, c.à.d. soit en dehors de l'arborescence des directory d'apache, soit dans un dossier protégé par un .htacess avec "deny from all".

2e étape :ces fichiers inaccessibles par des requetes http normales, tu les fais lire par un script php qui, lui, est accessible par http et qui se charge de vérifier les droits d'accès.
Un truc de ce genre :

voir_photo_protegee.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// tu commences par faire la vérif sur les droits d'accès (vérif basée sur la session de préférence)
if(utilisateur_autorise())
{
	$dossierProtege = "/home/apache/";
	$nomFichier = "unfichier.jpg";
	$cheminFichierSurLeDisque = $dossierProtege.$nomFichier;
 
	// tu essayes de déterminer le type MIME du fichier
	$typeMIME = mime_content_type($cheminFichierSurLeDisque);
 
	// si tu as trouvé le type MIME, tu l'envoie dans les entetes http
	if($typeMIME != null)
		header('Content-type: '.$typeMIME);
 
	// tu envoies le nom du fichier dans l'entete http (facultatif)
	header('Content-Disposition: filename='.$nomFichier);
 
	// tu lis le contenu du fichier que tu envoies "brut" dans le flux de sortie
	readfile($cheminFichierSurLeDisque);
}
else
	header('HTTP/1.1 403 Forbidden');
Une fois que t'as fait ce script et qu'il marche bien, tu n'as plus qu'a mettre une balise img pointant dessus, par exemple (si le fichier protegé est une image)
Code :
<img src="voir_photo_protegee.php" alt="fichier image protegé"/>
Bien sûr c'est un exemple, en vrai tu ne mettras pas le nom du fichier "en dur" dans le code, tu iras le chercher dans les parametres de la requete http, ou dans une base de données etc ... à toi de te servir de cette base pour l'améliorer
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 20h45   #3
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
salut,
y'a peut être une solution en laissant les fichiers dans l'arborescence et en utilisant chmod.
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 05h11   #4
Membre confirmé
 
Avatar de max44410
 
Étudiant
Inscription : juin 2003
Messages : 426
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2003
Messages : 426
Points : 259
Points : 259
Envoyer un message via MSN à max44410 Envoyer un message via Skype™ à max44410
Citation:
Envoyé par julien.63
salut,
y'a peut être une solution en laissant les fichiers dans l'arborescence et en utilisant chmod.
Autre solution donnee il y pas plus de 2 jours sur le forum... enregistrer les photos dans la base de donnees.
__________________
Venez voir par là...
max44410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 10h20   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2003
Messages : 20
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 20
Points : 10
Points : 10
Ok merci de vos reponses je vais les etudier en detail. J'avais bien pense a les mettre dans la base de donnees mais je pense que ca risque de la surcharger lourdement.
bl4d3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h24.


 
 
 
 
Partenaires

Hébergement Web