Sécuriser le téléchargement de photos payantes (Ex: GettyImages) - PHP - Programmation
Marsh Posté le 01-08-2005 à 10:15:21
tu peux faire http://www.monsite.com/photo.php avec dedans
session_start();
if (droits_ok(..)) {
header("Content-Type: image/jpeg" );
include("repertoireprotege/imageaafficher.jpg" );
}
Marsh Posté le 01-08-2005 à 13:05:59
appel d'un script php avec identification du type, puis apres validation du user/pwd, envoyer l'image, toujours php, avec les header.
Marsh Posté le 01-08-2005 à 14:03:17
Et les images protegees seront mises dans un repertoires protege par un .htaccess par exemple
Edit : on ne le repetera jamais assez mais include (de meme que require) inclut le contenu du fichier mais il y a un mecanisme de parsing du code PHP a l'interieur du fichier inclus qui est mis en route. Depense inutile de ressource ! Mieux vaut utiliser readfile lorque le fichier a inclure ne contient pas de PHP.
Marsh Posté le 01-08-2005 à 14:15:52
un chmod 700 sur le dossier d'images suffirait à les protéger non ?
Marsh Posté le 01-08-2005 à 14:31:17
éventuellement tu mets l'extension .jpg et un fichier .htaccess avec
<Files machin.jpg>
ForceType application/x-httpd-php
</Files>
sinon, non, ça ne gène pas ...
c'est fou comme les sujets peuvent se ressembler
http://forum.hardware.fr/hardwaref [...] m#t1166640
Marsh Posté le 23-08-2005 à 09:17:58
Label83 a écrit : Thx guys! |
Bonjour à tous,
Je me suis repenché aujourd'hui sur cette problématique et en suivant vos réponses j'ai trouvé le bout de code suivant (http://au.php.net/header):
Code :
|
Ca m'a l'air de fonctionner et ça semble assez sécurisé.
Je poursuis dans cette voie
Merci encore
Cheers,
Pierre
Marsh Posté le 01-08-2005 à 10:10:34
Bonjour à tous,
Je dois développer pour mon stage un site de vente de photos d'événements sportifs. Très exactement sur le modèle de http://creative.gettyimages.com mais spécialisé dans le sport.
Mon problème est que je ne veux pas que lorsquun client achète les droits de téléchargement d'une photo il puisse accéder à toutes les autres photos en manipulant l'url.
Exemple :
Je suis un client et j'ai acheté la photo « 01.jpeg », jai donc maintenant accès à un lien de la forme :
http://www.monsite.com/photos/01.jpeg
Il se trouve que je suis un petit futé et je que je décide de changer lurl en :
http://www.monsite.com/photos/02.jpeg
Et là, oh magie, je peux télécharger gratuitement une autre image.
Et ça je doute que ça fasse rire le client pour qui je dois développer le site
Voici les « solutions » que jai déjà trouvées :
1. Ne pas permettre le téléchargement, mais envoyer directement limage au client.
-> Problème : Envoyer (email) une image de 300dpi qui va peser entre 3 et 10 Mo ce nest bien évidemment pas possible.
2. Déplacer limage concernée par le téléchargement dans un dossier temporaire et envoyer cette url « temporaire » donc au client.
-> Problème : Déplacer des fichiers de plusieurs mégaoctets (3-10 Mo) va représenter une charge de travail non négligeable pour le serveur. De plus ce nest pas une solution rationnelle (deux fichiers identiques à deux endroits différents au même moment ).
3. Donner un nom complexe à chacune des images.
Exemple :
01.jpeg -> fgfdUDDfdf34nfdU2njdfds76jfds_dsf7633dsffsf765dsd.jpeg
De cette manière il y a peu de chance que le petit malin puisse tomber sur un autre nom dimage.
-> Problème : Mais la possibilité existe toujours, cette solution nest donc pas 100% fiable. De plus la maintenance du site est un peu compliquée par cette charte de nommage peu orthodoxe, et ce nest pas très user friendly, le client se retrouvant donc avec des images au nom exotique sur son ordinateur
4. Utiliser les propriétés dURL rewriting (ou simplement de Redirect ?).
En utilisant un fichier .htaccess je fais en sorte que lurl apparente de la forme http://www.monsite.com/photo.php?i [...] ffsf765dsd soit en réalité interprétée par le serveur apache comme http://www.monsite.com/pct/01.jpeg de cette manière le petit malin ne peut télécharger une image gratuitement en changeant lid (voire solution 3).
-> Problème : Identique à la solution 3. De plus utiliser un fichier .htaccess entraine une hausse de la consommation en ressource système sur le serveur. De plus je ne suis pas certain de pouvoir obtenir ce genre de chose avec un .htaccess. Confirmation ? / Infirmation ?
Voilà où j'en suis aujourd'hui...
Je suis donc preneur de toute autre solution / conseil etc...
Merci beaucoup