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 :

Protéger répertoire image


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 101
    Points : 43
    Points
    43
    Par défaut Protéger répertoire image
    Bonjour,

    Existe-il un solution pour protéger un répertoire et des images sans altérer leur appel par un script ?

    Plus concrètement, je veux protéger ce répertoire :

    www.exemple.fr/test/

    ainsi que toutes les images qui ne doivent pas s'afficher lorsque l'on tape leur adresse directe :
    www.exemple.fr/test/img1.jpg
    www.exemple.fr/test/img2.jpg
    etc...

    Mais il faut quand même que c'est images puissent être appelée en externe via une balise <img> par exemple.

    Est-ce que c'est faisable ? Et si oui de quelle manière ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux interdire l'accès au repertoire et aux fichiers par htaccess.
    Tu appelles ensuite tes images a travers un script qui se charge de lire le fichier et que tu appelles dans ta balise <img> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image.php?file=img1.jpg">
    Il faut bien sur que ce fichier image.php gère les autorisations d'un manière ou d'une autre sinon l'utilisateur aurait juste à taper le nom de l'image qu'il souhaite dans l'url.

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Je susi un peut étonné, car HTACCESS n'agit que sur les appel d'autres sites.

    Donc si tu mets dans la racine de ton site, un PHP ou HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <HTML><BODY>
    <img  src="test/img1.jpg" alt="" border="0" />
    </BODY></HTML>
    ça marchera forcément, si non,ton HTACCESS est mal écrit.
    Je te signales que je n'ais pas employé de HTTP:....

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fox quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img  src="test/img1.jpg" />
    tu appelles réellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img  src="http://site/test/img1.jpg" />
    l'image est demandé par le navigateur comme un document independant de la page ; ce n'est pas le serveur qui pousse les données.

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Fox quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img  src="test/img1.jpg" />
    tu appelles réellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img  src="http://site/test/img1.jpg" />
    l'image est demandé par le navigateur comme un document independant de la page ; ce n'est pas le serveur qui pousse les données.
    Oui OK avec toi, mais moi perso mes htaccess n'empéchnt pas la lecture en local

    Du reste dans mes répertoires ou sont les PHP contenant les mots de passe,

    J'ais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Files "f_mdp.php">
    Order Allow,Deny
    Deny from All
    </Files>

    Et la dans mes PHP je peux enfaire des includes ! et tiens toi bien,
    lors de la panne d'un de nos serveurs, les PHP étaient proposés en téléchargment, La CATA mais pour f_mdp.php rien a faire !!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    certes mais <img> n'a rien a voir avec include() :
    <img> est servi par le serveur web, et est donc soumis aux regles .htaccess si on parle d'apache.
    include() est une lecture systeme du fichier par php, elle ignore donc apache.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut
    Cela ne va pas protéger un répertoire et des images, mais va au moins empêcher le visiteur de pouvoir consulter la liste d'image dans un répertoire.

    La technique est simple, ajoute un fichier index.html vierge dans le répertoire désiré.

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    certes mais <img> n'a rien a voir avec include() :
    <img> est servi par le serveur web, et est donc soumis aux regles .htaccess si on parle d'apache.
    include() est une lecture systeme du fichier par php, elle ignore donc apache.
    Whaou belle nuance du mécanisme d'un serveur c' est toi qui a raison

  9. #9
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Euh... suffit de placer un fichier index.php vierge ou mieux avec une redirection et le tour est joué.
    Ou encore de mettre dans un .htaccess la directive :
    selon ton serveur...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    On peut aussi ajouter dans un fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location: ../");
    ça fait pas caler la navigation comme ça.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Malheureusement la redirection ou l'index n'empeche pas d'appeller directement les fichiers, par exemple si le nom des fichiers est predictible.

  12. #12
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Euh... une image pourra toujours être appelée...
    A moins de mettre une protection htpasswd, il s'agissait d'empêcher le listing...

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    Il est possible de faire avec 2 champs, un contenant le nom de l'image réelle, l'autre pour l'appel...

  14. #14
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par blueice Voir le message
    Euh... une image pourra toujours être appelée...
    A moins de mettre une protection htpasswd, il s'agissait d'empêcher le listing...
    Mais mon Ami, j'aurais répondu comme toi !! puisque ches moi il y a dans TOUT mes repertoires des index.php

    Mais contrairement a ce que tu dis, relis la question d'origine, avec soins

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Euh... une image pourra toujours être appelée...
    La demande etait de ne pas pouvoir l'appeller directement justement.
    D'ou ma proposition de faire un script indirect qui lit l'image.

Discussions similaires

  1. Comment indiquer le chemin du répertoire images
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/02/2008, 15h51
  2. protéger ses images
    Par histoblog dans le forum Delphi
    Réponses: 15
    Dernier message: 20/11/2006, 17h35
  3. Protéger des images
    Par duplo dans le forum Apache
    Réponses: 13
    Dernier message: 29/12/2005, 20h38
  4. Protéger mes images
    Par Franck2mars dans le forum Webdesign & Ergonomie
    Réponses: 16
    Dernier message: 27/06/2005, 11h51
  5. protéger les images des internautes ?
    Par WBO dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 17/05/2005, 17h14

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