script anti leech (sans .htaccess)

Tempus
Invité n'ayant pas de compte PHPfrance

30 juin 2006, 17:19

Bonjour a tous,
je recherche un script bien precis :

En fait j'aimerai que mes fichiers *.rar ne soit accessible que via une un nom de domaine precis.
Afin d'eviter de me faire voler mes liens.

Par exemple, j'heberge un fichier *.rar -> video.rar sur un ftp monespacedestockage.free.fr
Mais je veux que ce fichier ne soit accessible que via mon site qui est sur monsite.free.fr
Le lien ne marcherai pas si il provenait d'un autre domaine que monsite.free.fr

Mais pour cela je ne veux pas que mes membres doivent rentre un login et mot de passe. donc je ne veux pas de .htaccess


Merci beaucoup.


ps : je suis pas terrible en php ^^

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 juin 2006, 17:55

Ca se vole un lien ?

A priori je dirais que tu ne peux pas empêcher d'accéder au fichier si tu ne passes pas par l'authentification d'un .htaccess... en effet, même depuis ton site, tu propose à tes utilisateurs un lien du type "http://stock.free.fr/fichier.rar", adresse que n'importe qui peut saisir dans son navigateur..

En plaçant un fichier index.htm/html/php à la racine, tu peux empêcher de lister le contenu du dossier, ce qui oblige les internautes à connaitre l'url exacte (que tu donnes sur ton site) pour y accéder..

Ensuite en php, tu peux envisager un script qui en fonction d'un paramètre spécifique ira chercher pour l'utilisateur le fichier et le retournera sans en dévoiler l'url exacte...

Mais cela limite uniquement l'accès qu'il peut y avoir en dehors de ton site, si quelqu'un a l'adresse directe du fichier, il pourra toujours le récupérer si tu n'en protèges pas l'accès

Tempus
Invité n'ayant pas de compte PHPfrance

30 juin 2006, 18:05

je ne sais pas si c'est possible mais ce que j'aimerai alors c'est un systeme de .htaccess mais qui marche sans se logger
toute personne surfant sur monsite.free.fr pourront prendre le fichier sans se logger.
Les autres, ceux qui viennent d'ailleur, seront renvoyé vers un message d'erreur si il prennent l'adresse http://stock.free.fr/fichier.rar autre que sur http://monsite.free.fr

merci de ta réponse

Eléphant du PHP | 82 Messages

30 juin 2006, 19:14

Salut,

Si tu souhaite ne pas afficher ton nom de domaine, utlise un fichier pour les telecharger... style telechargement.php?id=monfichier et dedans tu fait un header sur le fichier... Je pense que ca marchera (en plus tu peux compter les clicks).

Comme ca il sera impossible de connaître ton autre domaine.

++

Tempus
Invité n'ayant pas de compte PHPfrance

30 juin 2006, 19:50

Salut,

Si tu souhaite ne pas afficher ton nom de domaine, utlise un fichier pour les telecharger... style telechargement.php?id=monfichier et dedans tu fait un header sur le fichier... Je pense que ca marchera (en plus tu peux compter les clicks).

Comme ca il sera impossible de connaître ton autre domaine.

++
Salut, je suis fortement interessé par ton astuce car il est vrai que si le lien reelle n'apparait pas alors, il ne sera pas volé.

Mais comment fais-ton un tel fichier php ?
Et est ce qu'il ne marchera pas sur les autres sites (car c'est un peu la raison du script... lol).

Merci de vos aides

Eléphant du PHP | 82 Messages

30 juin 2006, 22:25

tu crée un fichier du genre :
<?

 header("Content-Type: application/force-download");
      header("Content-Disposition: attachment; filename=".$fname);

exit();

?>
L'idéal serait d'avoir une base de données et passer l'id du fichier en paramètre

Tu devrais trouver pas mal d'éléments : http://fr.php.net/header

Par contre, ca ne resout pas le problème d'empecher l'acces par d'autres utilisateurs si ils connaissent ton url

Peut-êre pourra tu faire un htaccess qui n'autorise que l'ip de ton site (je suis pas fort en htaccess)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 juil. 2006, 13:30

Juste une précision : "Comme ca il sera impossible de connaître ton autre domaine", c'est plutôt "il sera peu probable de connaître ton autre domaine".

Si quelqu'un a l'adresse, rien ne l'empêchera de faire son lien. Le script qui renvoi à l'utilisateur le fichier attendu est une bonne chose mais ne protège en rien l'url du fichier.

Qui plus est, il est tout à fait possible dans ce cas d'utiliser l'url du script pour récuperer le fichier en question.. il faut donc voir à d'avantage le sécuriser, sinon il n'apportera rien de plus.

Eléphant du PHP | 254 Messages

01 juil. 2006, 17:22

exact, meme avec cette "astuce" il est tres facile en analysant le trafic du navigateur de recuperer l'url du fichier ....

Eléphant du PHP | 82 Messages

01 juil. 2006, 18:01

C'est quoi la solution alors?

Mammouth du PHP | 983 Messages

01 juil. 2006, 18:29

Je ferais quelque chose du genre :
  • - protection du répertoire par un .htaccess pour empêcher l'accès aux fichiers directement par leur URL.
    - un script qui prend un argument (id, nom de fichier...) qui permette d'identifier le fichier à télécharger. Ce script n'autorise le téléchargement que si une variable de session est définie (ce qui signifie que l'utilisateur a surfé sur au moins une page de ton site).

tempus
Invité n'ayant pas de compte PHPfrance

01 juil. 2006, 20:23

Je ferais quelque chose du genre :
  • - protection du répertoire par un .htaccess pour empêcher l'accès aux fichiers directement par leur URL.
    - un script qui prend un argument (id, nom de fichier...) qui permette d'identifier le fichier à télécharger. Ce script n'autorise le téléchargement que si une variable de session est définie (ce qui signifie que l'utilisateur a surfé sur au moins une page de ton site).
voila c'est exactement ce que je cherche.

merci bcp

Tempus
Invité n'ayant pas de compte PHPfrance

05 juil. 2006, 13:40

Personne ne sait ?

Tempus
Invité n'ayant pas de compte PHPfrance

10 juil. 2006, 13:55

petit up svp.

:oops:

merci

Eléphant du PHP | 332 Messages

10 juil. 2006, 18:08

Pour empêcher quelqu'un d'accéder aux images d'un site depuis l'extérieur, voici ce qu'il faut mettre dans .htaccess

Code : Tout sélectionner

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?VOTRE_DOMAINE.COM/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|GIF|JPG|JPEG)$ - [F]
Plus d'explications ici
http://www.toulouse-renaissance.net/c_o ... o_link.htm

Mais ... il faut que l'hébergeur autorise les fonctions de type RewriteRule, ce qui n'est pas souvent le cas.
Une méthode équivalente serait

Code : Tout sélectionner

SetEnvIfNoCase Referer "^http://www.votre-domaine.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://www.votre-domaine.com$" locally_linked=1 SetEnvIfNoCase Referer "^http://votre-domaine.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://votre-domaine.com$" locally_linked=1 SetEnvIfNoCase Referer "^http://www.un-autre-domaine.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://www.un-autre-domaine.com$" locally_linked=1 SetEnvIfNoCase Referer "^$" locally_linked=1 <FilesMatch "\.(gif|png|jpe?g)$"> Order Allow,Deny Allow from env=locally_linked </FilesMatch>
A tester et à adapter ...