Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 11/08/2007, 00h27   #1
Membre Expert
 
Eleveur de cornichons
Inscription : juin 2002
Messages : 1 060
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Eleveur de cornichons
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 1 060
Points : 1 040
Points : 1 040
Par défaut [Upload] Interdire accès direct à un fichier

Bonjour

J'utilise un formulaire pour uploader une image vers le serveur. Cette image est copiée dans un répértoire dont les utilisateurs n'auront pas à connaitre le nom normalement. Mais ils peuvent toujours le deviner...

Alors je voudrais savoir comment interdire l'accès aux images directement ? Car j'explique un peu : chaque utilisateur a un profil. Et seuls les amis peuvent voir l'image de la personne. Or, chaque image uploadée va dans le dossier upload sous un nom généré automatiquement... Mais n'importe qui peut donc aller dans ce répértoire upload et regarder les images des autres. J'ai mis un fichier index.php pour ne pas pouvoir voir la liste mais s'ils tapent le nom de l'image dans l'url, ils la verront...

Comment faire pour remédier à cela ?
Merci

Nas'
Nasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 01h53   #2
Membre régulier
 
Étudiant
Inscription : novembre 2005
Messages : 85
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2005
Messages : 85
Points : 81
Points : 81
tu peux, mais cela bouffe des ressource, mettre les images dans un répertoires or du web, et puis aller afficher l'image grâce à php qui lira le fichier et l'enverra en sortie .....
Grummfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 13h48   #3
Membre Expert
 
Eleveur de cornichons
Inscription : juin 2002
Messages : 1 060
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Eleveur de cornichons
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 1 060
Points : 1 040
Points : 1 040
Justement, j'avais pensé à cette méthode mais elle est lourde je trouve pour les accès. Y'a pas une méthode qui interdit simplement l'accès direct aux images ?
Comment font les sites qui proposent aux utilisateurs d'avoir des photos que seul un cercle privé peut voir ?

Nas'
Nasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 15h40   #4
Membre du Club
 
Avatar de Atikae
 
Étudiant
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 40
Points : 40
Envoyer un message via MSN à Atikae
Ces genres de sites mettent les images en dehors du document_root il me semble.
Sinon plusieurs possibilité soffre à toi :

Mettre le contenu de l'image dans la bdd, où même couper l'image en deux.
Laisse cour à ton imagination, et regarde qu'elle méthode est la moins grosses en ressource.
Atikae est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 18h21   #5
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Si tu veux vraiment verrouiller l'accès en vérifiant d'une part que la personne est bien connectée, puis qu'elle est bien amie avec telle autre, tu es obligé de lire l'image avec PHP. Après libre à toi de la stocker dans une BDD ou dans un dossier inaccessible. Un .htaccess seul ne suffira pas car il ne peut pas gérer cette logique, tu peux simplement lui dire de refuser l'accès pour tout le monde (éventuellement accès par mot de passe, par adresse IP, mais pas par rapport à une session PHP). La technique consiste donc à interdire l'accès direct avec un .htaccess puis à passer par PHP pour servir l'image aux personnes qui y ont droit.

L'inconvénient est que ça utilise forcément plus de ressources que de servir l'image de manière statique. D'instinct, je dirais que le surcoût est probablement marginal par rapport à la génération complète d'une page mais c'est à voir. D'autre part, ma philosophie serait plutôt : "Scale Later"


En revanche tu peux aussi faire en sorte que le nom de l'image soit difficile à deviner (nom aléatoire par exemple). Dans ce cas tout ceux qui connaissent le nom de l'image pourront y accèder. Mais puisqu'il faut effectivement être ami avec untel pour que le système te donne le nom de son image perso, tu retombes sur tes pattes
La différence est que quelqu'un pourrait faire circuler le nom de l'image, mais avec l'autre système on peut aussi enregistrer l'image sur le disque et l'uploader ailleurs, donc ça ne fait pas une grosse différence.
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2007, 23h38   #6
Membre Expert
 
Eleveur de cornichons
Inscription : juin 2002
Messages : 1 060
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Eleveur de cornichons
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 1 060
Points : 1 040
Points : 1 040
Merci Taum.

J'ai pensé également au nom difficile à deviner, ça peut être une solution finalement...
Quoiqu'il en soit, le "scale later" est très vrai...
Merci

Nas'
Nasky 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 23h26.


 
 
 
 
Partenaires

Hébergement Web