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

Sécurité Discussion :

Affichage d'une image protégé par un .htaccess "deny from all"


Sujet :

Sécurité

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut Affichage d'une image protégé par un .htaccess "deny from all"
    Bonjour,

    J'aimerai protéger les photos des utilisateurs de mon site.

    Pour cela, elles se situent dans un répertoire protégé par un .htaccess avec à l'intérieur "deny from all".

    Le problème est que je n'arrive pas à afficher les photos maintenant, c'est ballot ^^.

    j'ai donc trouvée une solution qui consiste à créer un script php de la sorte :
    et à l'appeler via une balise image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='script.php' />
    Le problème est qu'il est impossible d'afficher une autre image que celle écrit en dure "mon_image". Donc j'essaye de faire passer une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <img src='script.php?img=mon_image' />
    //ou
    <img src='script.php/image.jpg' />
    //ou
    putenv("img=mon_image");
    //mais la variable n'existe pas dans l'autre script car on change de script
    Si vous avez une solution, je suis preneur (qu'elle soit dans la lignée de ce que j'ai commencé ou différente).

    PS:J'ai entendu parler du hotlinking mais les images sont-elles réellement protégées ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    le hotlinking n'a rien à voir.

    Et à partir du moment où on affiche une image sur un site, il y a toujours moyen de la copier ou la télécharger.

    Il est toujours possible de "prévenir" les internautes que l'image est protégée en droit (copyright).
    Mais vouloir interdire à tout prix la copie me semble illusoire ...

    On peut aussi ajouter un watermark sur les images ...
    C'est ce que font les banques de photos (payantes) comme ici

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2008
    Messages : 23 647
    Points : 91 420
    Points
    91 420
    Billets dans le blog
    20
    Par défaut
    J'aimerai protéger les photos des utilisateurs de mon site.
    Ce qu'il faut bien comprendre, c'est que pour afficher une image, le navigateur doit la télécharger ! Il est donc impossible de l'empêcher !
    Quelle que soit la méthode employée pour dissuader (désactivation du clic droit, du glisser déposer et j'en passe), l'image est déjà dans le répertoire cache du navigateur.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    L'affichage des images se fait dans un espace sécurisé par mot de passe. Il n'est pas gênant que les utilisateurs ayant accès puissent télécharger les images, c'est pour ceux qui n'ont pas accès mon problème.

    Est-ce que le fait d'empêcher le listage du répertoire et de mettre des noms d'images longs peut être utile? A ce moment la je retirerai le .htaccess

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    J'ai finalement trouvé la solution.

    J'utilise la réécriture d'URL avec apache.
    Mon code pour afficher l'image est le suivant (dans ma page d'affichage):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='mapage_image.php' alt='' title='' />";
    Mon URL Rewriting est (dans le .htaccess à la racine du site):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule   ^mapage_([a-zA-Z0-9\.]*)\.php$   print_img.php?img=$1  [L]
    En gros je récupéré le texte "image" qui va être renvoyé en tant que variable $1 à ma page php qui affichera simplement avec un readfile ma variable (dans le print_img.php):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	$img = htmlentities($_GET['img'],ENT_QUOTES);
    	readfile("/photos/".$img);
    ?>
    J'espère que ça pourra aider quelqu'un
    Merci de votre aide

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si le but du jeu était de cacher le nom de l'image dans le code source, c'est raté, puisqu'il apparait en clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='mapage_mon-image.jpg.php' alt='' title='' />";
    Il est assez facile de remonter jusqu'à l'image elle-même : /dossier-photos/mon-image.jpg

    Peut-etre peut-on envisager de crypter ce nom d'image avant :
    Je suis tombé sur ca : mcrypt_encrypt() / mcrypt_decrypt()
    Dernière modification par Sendusha ; 03/08/2011 à 14h06. Motif: Balises [CODE]...[/CODE]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    En fait le dossier est protégé par un .htaccess avec "deny from all". Donc peu importe si le nom apparait ou pas non ?

    Je note les fonctions de cryptage, interessant

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Particulier
    Inscrit en
    juillet 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Particulier
    Secteur : Arts - Culture

    Informations forums :
    Inscription : juillet 2018
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Déterrage de topic. Ton code m'intéresse, mais je n'ai pas tout compris.
    Tu pourrais préciser concernant le code au dessus. Tu as combien de pages php différentes ?
    • 1 page d'affichage mapage.php
    • 1 page print_img.php
    • le .htaccess

    Ce que je ne comprends pas, c'est qu'une fois que tu as récupéré la variable dans le print_img.php, et que tu fais un readfile , tu fais comment pour renvoyer le résultat à mapage.php ?

    Merci d'avance.

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

Discussions similaires

  1. Affichage d'une image générée par un service WCF
    Par PerpetualSnow dans le forum Silverlight
    Réponses: 14
    Dernier message: 17/03/2009, 09h19
  2. Affichage d'une image par JS avec Mozilla
    Par renaud26 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/08/2006, 15h14
  3. Récupération du code d'une page protégée par htaccess
    Par Vedlen dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 11/07/2006, 14h37
  4. Récupération du code d'une page protégée par htaccess
    Par Vedlen dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 10/07/2006, 16h07
  5. [GD] pb affichage d'une image créée par GD depuis ma base MySQL
    Par freddy92110 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/12/2005, 15h50

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