IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Interdire accès direct à un fichier


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    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'

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 87
    Points : 96
    Points
    96
    Par défaut
    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 .....

  3. #3
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    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'

  4. #4
    Membre du Club Avatar de Atikae
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 56
    Points : 56
    Points
    56
    Par défaut
    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.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    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.
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  6. #6
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    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'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2007, 14h42
  2. [AJAX] Interdire accès direct aux pages PHP
    Par Nasky dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/07/2007, 17h28
  3. Interdire l'acces directe aux fichiers php
    Par Never dans le forum Apache
    Réponses: 4
    Dernier message: 04/12/2006, 21h00
  4. htaccess : interdire l'accès direct aux fichiers php
    Par Cédricss dans le forum Apache
    Réponses: 5
    Dernier message: 08/10/2006, 11h29
  5. [TOMCAT] Comment empêcher l'accès direct aux fichiers
    Par thomine dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 14/04/2005, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo