Images en .php

Le
Denis Beauregard
Bonjour,

Sur un site, on a 2 millions d'images. Pour empêcher le piratage des
images, elles sont envoyées sous forme d'un script .php qui valide
la session puis envoie l'image. Le nom du fichier est en .php et non
en .jpg même si pour un usager inscrit, le résultat est une image
.jpg.

Cela fonctionne pour la plupart des usagers mais certains ne voient
plus les images, apparemment suite à une mise à jour de Windows 7.
On est encore sous enquête pour comprendre ce qui se passe (le
logiciel est installé depuis plusieurs mois et il y a peu d'usagers
qui ont le problème).

Le code au début de l'image est à peu près ceci :


<?php

session_start ();
include_once /./

confirmer_session ();

// suite du code pour aller chercher le nom du fichier dans $image

//l'image est ensuite envoyée telle quelle
//rien n'est envoyé auparavant sauf s'il y a une erreur

header("Content-Type: image/jpeg");
header("Content-Disposition: inline;
filename="".Valeur('no',"0").".jpg"");
readfile($image);

?>

Ma question : l'extension de l'image est .php et non .jpg. Est-ce
MS est tombé sur la tête et ne reconnaît plus qu'un .php puisse
être autre chose que du html ?


Denis
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vince
Le #24966682
Denis Beauregard a écrit :
Bonjour,

Sur un site, on a 2 millions d'images. Pour empêcher le piratage des
images, elles sont envoyées sous forme d'un script .php qui valide
la session puis envoie l'image. Le nom du fichier est en .php et non
en .jpg même si pour un usager inscrit, le résultat est une image
..jpg.

Cela fonctionne pour la plupart des usagers mais certains ne voient
plus les images, apparemment suite à une mise à jour de Windows 7.
On est encore sous enquête pour comprendre ce qui se passe (le
logiciel est installé depuis plusieurs mois et il y a peu d'usagers
qui ont le problème).

Le code au début de l'image est à peu près ceci :


<?php

session_start ();
include_once /..../

confirmer_session ();

// suite du code pour aller chercher le nom du fichier dans $image

//l'image est ensuite envoyée telle quelle
//rien n'est envoyé auparavant sauf s'il y a une erreur

header("Content-Type: image/jpeg");
header("Content-Disposition: inline;
filename="".Valeur('no',"0").".jpg"");
readfile($image);

?>

Ma question : l'extension de l'image est .php et non .jpg. Est-ce
MS est tombé sur la tête et ne reconnaît plus qu'un .php puisse
être autre chose que du html ?



Vous pouvez peut-être utiliser le RewriteRule d'apache pour avoir des .jpg au
lieu de .php.

PS: Je ne suis pas certain de l'efficacité d'un tel script pour éviter le
piratage (mais c'est un autre débat).
Olivier Miakinen
Le #24967042
Le 16/11/2012 17:06, Vince répondait à Denis Beauregard :

Vous pouvez peut-être utiliser le RewriteRule d'apache pour avoir des .jpg au
lieu de .php.



Oui, ou tout simplement avec « Options +MultiViews », en nommant le
fichier exemple.jpg.php, et en ne donnant que exemple.jpg dans l'URL.

PS: Je ne suis pas certain de l'efficacité d'un tel script pour éviter le
piratage (mais c'est un autre débat).



Je pense que l'idée est de vérifier grâce aux sessions que la personne
est connectée. Cela évite que quelqu'un puisse lire l'image avec juste
l'URL, sans se connecter d'abord.

Cordialement,
--
Olivier Miakinen
Denis Beauregard
Le #24967562
Le Fri, 16 Nov 2012 18:15:46 +0100, Olivier Miakinen

Le 16/11/2012 17:06, Vince répondait à Denis Beauregard :

Vous pouvez peut-être utiliser le RewriteRule d'apache pour avoir des .jpg au
lieu de .php.



Oui, ou tout simplement avec « Options +MultiViews », en nommant le
fichier exemple.jpg.php, et en ne donnant que exemple.jpg dans l'URL.

PS: Je ne suis pas certain de l'efficacité d'un tel script pour éviter le
piratage (mais c'est un autre débat).



Je pense que l'idée est de vérifier grâce aux sessions que la personne
est connectée. Cela évite que quelqu'un puisse lire l'image avec juste
l'URL, sans se connecter d'abord.



On a fini par trouver la source du problème chez un usager (parmi
les 4 qui ont le problème) : c'est une nouvelle version de Karperski
qui cause le problème ! En désactivant l'antivirus, les images sont
reçues.

Je vais chercher une image avec image.php?no3142_3106519828.

Une idée dingue mais est-ce qu'il me suffirait d'utiliser plutôt
image.php?no3142_3106519828.jpg ???


Denis
Olivier Miakinen
Le #24967912
Le 16/11/2012 20:48, Denis Beauregard a écrit :

Une idée dingue mais est-ce qu'il me suffirait d'utiliser plutôt
image.php?no3142_3106519828.jpg ???



Je crois me rappeler avoir contourné un bug de IE 6 avec une astuce de
ce genre... mais c'est vieux, je ne suis pas sûr de bien me souvenir.
Publicité
Poster une réponse
Anonyme