Faire des URL temporaires pour contrer le leeching
26 messages
• Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- zolt
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Juil 2004
Faire des URL temporaires pour contrer le leeching
Salut,
Sur un site de téléchargement de vidéos, je souhaiterais en limiter l’accès de telle façon qu’il soit nécessaire de passer par la page descriptive de la vidéo avant de la regarder.
- Je veux donc interdire les accès directs du type :
www.example.com/videos/video23.wmv
- Le but est également d’empêcher les autres webmasters de l’afficher sur leur site comme si elle était à eux et donc de me piquer ma bande passante.
=> J’ai essayé le code suivant, mais sans rentrer dans les détails, il ne résout pas totalement le problème. Le même code marche très bien pour les images (si on rajoute les bonnes extensions), mais pour les vidéos c’est pas le top.
=> J’ai donc pensé à une autre solution, mais je n’arrive pas à la mettre en place : elle consiste à affecter une URL temporaire aux vidéos en fonction, par exemple, de la date.
Par exemple :
Comme ça le lien vers une vidéo n’est valable que 24 heures. Mais là il est trop facile de deviner qu’il s’agit de changer le numéro de jour dans l’url, donc j’aurais aimé quelque chose d’un peu plus compliqué, du genre :
www.example.com/15646854/video23.wmv
Sachant que dans tous les cas, il faut que ce soit réalisable dans un fichier .htaccess, et il faut aussi que le script PHP puisse retrouver cette url.
Donc, est-il possible d’effectuer des opérations mathématiques dans un fichier htaccess ?
Parce que si je pouvais faire un %{TIME_DAY}*1564+485-%{TIME_MON} ça arrangerait déjà pas mal mes problèmes.
Je précise qu’il ne m’est pas possible d’effectuer des taches cron ou des trucs de ce genre.
Voilà , je pense que vous comprenez mon problème et que d’autres doivent avoir le même !
Si vous avez une solution, je suis preneur !
Merci
Sur un site de téléchargement de vidéos, je souhaiterais en limiter l’accès de telle façon qu’il soit nécessaire de passer par la page descriptive de la vidéo avant de la regarder.
- Je veux donc interdire les accès directs du type :
www.example.com/videos/video23.wmv
- Le but est également d’empêcher les autres webmasters de l’afficher sur leur site comme si elle était à eux et donc de me piquer ma bande passante.
=> J’ai essayé le code suivant, mais sans rentrer dans les détails, il ne résout pas totalement le problème. Le même code marche très bien pour les images (si on rajoute les bonnes extensions), mais pour les vidéos c’est pas le top.
- Code: Tout sélectionner
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite.com\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(mp4|mp3|wmv|mov|avi|mpg|mpeg)$ elements/nohotlink.gif [NC,L]
=> J’ai donc pensé à une autre solution, mais je n’arrive pas à la mettre en place : elle consiste à affecter une URL temporaire aux vidéos en fonction, par exemple, de la date.
Par exemple :
- Code: Tout sélectionner
RewriteRule ^%{TIME_DAY}/(.*).wmv$ videos/$1.wmv [NC,L]
Comme ça le lien vers une vidéo n’est valable que 24 heures. Mais là il est trop facile de deviner qu’il s’agit de changer le numéro de jour dans l’url, donc j’aurais aimé quelque chose d’un peu plus compliqué, du genre :
www.example.com/15646854/video23.wmv
Sachant que dans tous les cas, il faut que ce soit réalisable dans un fichier .htaccess, et il faut aussi que le script PHP puisse retrouver cette url.
Donc, est-il possible d’effectuer des opérations mathématiques dans un fichier htaccess ?
Parce que si je pouvais faire un %{TIME_DAY}*1564+485-%{TIME_MON} ça arrangerait déjà pas mal mes problèmes.
Je précise qu’il ne m’est pas possible d’effectuer des taches cron ou des trucs de ce genre.
Voilà , je pense que vous comprenez mon problème et que d’autres doivent avoir le même !
Si vous avez une solution, je suis preneur !
Merci
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
Sur un site j'ai eut ce problème là .
J'ai un répertoire contenant des programmes
Après un peu de réflexion, j'ai trouvé un truc qui fonctionne pas mal. Le premier utilisateur de la journée fait changer le nom du répertoire de téléchargement (avec un md5 par exemple), ce nouveau nom est inscrit dans la BDD.
Pour télécharger les programmes, il faut absolument passer par ma page php qui donne le nom de ce répertoire car c'est impossible de le trouver au pif. Du coup je ne le protège même pas par un .htaccess ....
Le nom du répertoire changeant tous les jours, un webmaster ne peut pas faire un lien direct vers les programmes (ou alors il doit aller le chercher tous les jours)
Et je ne crois pas que ça va le brancher....
Tu peux voir comment ça marche en bas de cette page http://www.jeromax.free.fr/index.php?R=netsend
Et c'est complètement transparent pour l'utilisateur
J'ai un répertoire contenant des programmes
Après un peu de réflexion, j'ai trouvé un truc qui fonctionne pas mal. Le premier utilisateur de la journée fait changer le nom du répertoire de téléchargement (avec un md5 par exemple), ce nouveau nom est inscrit dans la BDD.
Pour télécharger les programmes, il faut absolument passer par ma page php qui donne le nom de ce répertoire car c'est impossible de le trouver au pif. Du coup je ne le protège même pas par un .htaccess ....
Le nom du répertoire changeant tous les jours, un webmaster ne peut pas faire un lien direct vers les programmes (ou alors il doit aller le chercher tous les jours)
Et je ne crois pas que ça va le brancher....
Tu peux voir comment ça marche en bas de cette page http://www.jeromax.free.fr/index.php?R=netsend
Et c'est complètement transparent pour l'utilisateur
- zolt
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Juil 2004
Merci pour ta réponse. C'est vrai que ça a l'air d'être une solution interessante.
Sauf que dans mon cas, je préfererais ne pas changer le nom du dossier en dur, car le SAFE MODE est activé chez mon hébergeur, et souvent quand je fais des manipulations de fichiers / dossiers via PHP ensuite je perds les droits sur ceux ci... Enfin bref c'est la merde, et ensuite je suis obligé de demander au support technique de me remettre les droits... le bordel quoi. Et je ne souhaite pas changer d'hébergeur.
Donc voilà , d'autres idées ?
Sauf que dans mon cas, je préfererais ne pas changer le nom du dossier en dur, car le SAFE MODE est activé chez mon hébergeur, et souvent quand je fais des manipulations de fichiers / dossiers via PHP ensuite je perds les droits sur ceux ci... Enfin bref c'est la merde, et ensuite je suis obligé de demander au support technique de me remettre les droits... le bordel quoi. Et je ne souhaite pas changer d'hébergeur.
Donc voilà , d'autres idées ?
- Eservice
- WRInaute passionné

- Messages: 1463
- Inscription: 18 Sep 2002
Bonjour zolt,
- mettre les vidéos dans un répertoire dédié avec un mot de passe en .htaccess pour bloquer les accès extérieurs
- remplacer les liens vidéo par un script php avec le nom en paramètre :
- si le référent est ton site tu rediriges vers la vidéo avec un header() supplémentaire : content-type
- sinon tu rediriges vers ta page
- mettre les vidéos dans un répertoire dédié avec un mot de passe en .htaccess pour bloquer les accès extérieurs
- remplacer les liens vidéo par un script php avec le nom en paramètre :
- si le référent est ton site tu rediriges vers la vidéo avec un header() supplémentaire : content-type
- sinon tu rediriges vers ta page
-

srappaille - WRInaute discret

- Messages: 207
- Inscription: 19 Jan 2004
Bonjour,
Pour éviter qu'on (me) pique (facilement) une video, j'utilise pour ma part Macromedia Flash MX. Je l'importe, le j'exporte au format .flv et je l'appelle avec le composant "offert" par le produit.
Exemple sur : -http://www.canneslions.be/fr/rmb-award/player.asp?id=160 (site en développement, soyez indulgent)
Je n'ai pas compliqué la chose mais, on pourrait subordonner le chargement à la condition que l'obje(c)t soit chargé à partir d'un domaine donné.
Cette possibilité nécessite une licence MF-MX mais elle offre l'avantage de ne pas dévoiler la source de votre vidéo. C'est une piste comme un autre, sans plus.
Bien à vous,
Pour éviter qu'on (me) pique (facilement) une video, j'utilise pour ma part Macromedia Flash MX. Je l'importe, le j'exporte au format .flv et je l'appelle avec le composant "offert" par le produit.
Exemple sur : -http://www.canneslions.be/fr/rmb-award/player.asp?id=160 (site en développement, soyez indulgent)
Je n'ai pas compliqué la chose mais, on pourrait subordonner le chargement à la condition que l'obje(c)t soit chargé à partir d'un domaine donné.
Cette possibilité nécessite une licence MF-MX mais elle offre l'avantage de ne pas dévoiler la source de votre vidéo. C'est une piste comme un autre, sans plus.
Bien à vous,
- Morph1er
- WRInaute occasionnel

- Messages: 307
- Inscription: 7 Juil 2004
Jeromax, je trouve ta solution excellente !!!
Moi qui cherche une solution efficace, je crois l'avoir trouvé !!! grâce à toi.
Mais voilà , juste une question, lors du renommage, comment ça va se passer ? Tous ceux qui téléchargait seront viré ? Sauf si on renomme vers les 5h du mat, là il ne devrait + rester grand monde mais, j'aimerai savoir auparavant ^^
Moi qui cherche une solution efficace, je crois l'avoir trouvé !!! grâce à toi.
Mais voilà , juste une question, lors du renommage, comment ça va se passer ? Tous ceux qui téléchargait seront viré ? Sauf si on renomme vers les 5h du mat, là il ne devrait + rester grand monde mais, j'aimerai savoir auparavant ^^
- zolt
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Juil 2004
Merci pour vos réponses. Je vais finalement me diriger vers la solution de jeromax car j'ai réussi à piger un peu mieux comment dompter le safe mode.
Morph1er => Perso je pense définir que le premier user qui télécharge après 3h du mat, alors ce sera là que le dossier sera renommé. Car de 3h du mat à 9h c'est des heures creuses, mais y'aura bien un visiteur qui viendra télécharger une fois.
Car effectivement, je pense que si on veut renommer un dossier pendant qu'un autre s'en sert, ça risque de foirer pour un des deux.
Vers minuit, il y a encore du monde, d'où mon choix de décaler à 3h du mat. Qu'en penses-tu ?
Morph1er => Perso je pense définir que le premier user qui télécharge après 3h du mat, alors ce sera là que le dossier sera renommé. Car de 3h du mat à 9h c'est des heures creuses, mais y'aura bien un visiteur qui viendra télécharger une fois.
Car effectivement, je pense que si on veut renommer un dossier pendant qu'un autre s'en sert, ça risque de foirer pour un des deux.
Vers minuit, il y a encore du monde, d'où mon choix de décaler à 3h du mat. Qu'en penses-tu ?
- franciscabrel
- Nouveau WRInaute

- Messages: 5
- Inscription: 10 Oct 2004
Bonjour, je suis exactement avec le même problème, je donne 3 vidéos wmv gratuites de 50Mo chacunes toutes les semaines et j'ai 500.000 visiteurs par mois...vous voyez le problème ! Ca me coute cher de rester gratuit...
Deplus étant chez online.net je ne peux pas mettre de .htaccess, bref la solution de jeromax me semble l'idéal.
Serais t'il possible d'avoir une partie de ton code ? (tu peux le signer), je n'ai plus fait de programmation depuis trop lontemps pour parvenir à le faire simplement.
Tu es mon dernier espoir
Ps : par contre il faudrait controler le referer je pense ? car le mec qui veut copier ton lien copie directement çà :
http://www.jeromax.free.fr/downloadProg.php?F=JXNetsend
et ca marche...
(du coup je vois plus l'interet que tu changes ton repertoire en permanence)
Deplus étant chez online.net je ne peux pas mettre de .htaccess, bref la solution de jeromax me semble l'idéal.
Serais t'il possible d'avoir une partie de ton code ? (tu peux le signer), je n'ai plus fait de programmation depuis trop lontemps pour parvenir à le faire simplement.
Tu es mon dernier espoir
Ps : par contre il faudrait controler le referer je pense ? car le mec qui veut copier ton lien copie directement çà :
http://www.jeromax.free.fr/downloadProg.php?F=JXNetsend
et ca marche...
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
oui bien sûr il faut controler le referrer (mais certains utilisateurs le cachent...).
En fait j'ai adapter mon cas à la question posée.
Cela me servait en fait à compter le nombre de téléchargements.
J'avais un programme sur telecharger.com dont je voulais compter le nombre de téléchargements depuis ce site, mais même en lui filant une adresse en amont, le site arrivait toujours à trouver l'adresse directe au fichier....
Du coup mon compteur perso ne comptait plus rien.
De cette manière, j'ai pu réussir à récupérer tous les téléchargements.
En fait j'ai adapter mon cas à la question posée.
Cela me servait en fait à compter le nombre de téléchargements.
J'avais un programme sur telecharger.com dont je voulais compter le nombre de téléchargements depuis ce site, mais même en lui filant une adresse en amont, le site arrivait toujours à trouver l'adresse directe au fichier....
Du coup mon compteur perso ne comptait plus rien.
De cette manière, j'ai pu réussir à récupérer tous les téléchargements.
- franciscabrel
- Nouveau WRInaute

- Messages: 5
- Inscription: 10 Oct 2004
OK je comprends mieux.
Serait il possible d'avoir l'extrait de ton code d'anti leeching ?
Serait il possible d'avoir l'extrait de ton code d'anti leeching ?
-

jeromax - WRInaute passionné

- Messages: 1110
- Inscription: 12 Nov 2003
En fait, c'est un peu compliqué de le donner comme ça, parce qu'il y a plein de bout de code éparpillés...
Mais c'est assez simple à expliquer
C'est pas que je ne veux pas le donner, mais y'a rien à donner...
1. Dans une base, sauvegarder une nouvelle chaine de caractères à la noix (ex: sc248rtvyjb246rtthr26) avec une fonction genre rand+md5
2. Renommer le répertoire, où se trouve les infos que l'on veut "protéger",avec ce nom.
ex de path pour un fichier: -http://ww.tonsite/sc248rtvyjb246rtthr26/video.mpg
3. A chaque fois que vous souhaitez accéder à ce fichier, il faut aller chercher dans la base le nom à la noix et vous reconstruisez l'url
...après x temps vous repartez de 1.
Et voila, c'est devenu impossible de faire un lien direct vers le fichier video.mpg car ce lien ne sera valable que x temps...
Mais c'est assez simple à expliquer
C'est pas que je ne veux pas le donner, mais y'a rien à donner...
1. Dans une base, sauvegarder une nouvelle chaine de caractères à la noix (ex: sc248rtvyjb246rtthr26) avec une fonction genre rand+md5
2. Renommer le répertoire, où se trouve les infos que l'on veut "protéger",avec ce nom.
ex de path pour un fichier: -http://ww.tonsite/sc248rtvyjb246rtthr26/video.mpg
3. A chaque fois que vous souhaitez accéder à ce fichier, il faut aller chercher dans la base le nom à la noix et vous reconstruisez l'url
...après x temps vous repartez de 1.
Et voila, c'est devenu impossible de faire un lien direct vers le fichier video.mpg car ce lien ne sera valable que x temps...
- zolt
- Nouveau WRInaute

- Messages: 14
- Inscription: 30 Juil 2004
Voilà , moi c'est pareil sauf que le nom à la noix est stocké dans un fichier texte qui contient en ligne 1 : le nom à la noix, et en ligne 2 : la dernière date où le dossier a été renommé.
Donc pour récupérer ces 2 infos tu as juste à te servir de la fonction file().
Comme ça sur la page de téléchargement tu fais un test "Si la dernière date de renommage date d'avant aujourd'hui", alors on renomme et on stocke les nouvelles infos dans le fichier texte.
Genre nous sommes le 28/01/05, si le dernier renommage date du 27 alors on renomme.
Pour générer le nom à la noix un ptit md5(microtime()) et c'est bon il me semble.
Donc pour récupérer ces 2 infos tu as juste à te servir de la fonction file().
Comme ça sur la page de téléchargement tu fais un test "Si la dernière date de renommage date d'avant aujourd'hui", alors on renomme et on stocke les nouvelles infos dans le fichier texte.
Genre nous sommes le 28/01/05, si le dernier renommage date du 27 alors on renomme.
Pour générer le nom à la noix un ptit md5(microtime()) et c'est bon il me semble.
26 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Site beta : quelle est la meilleure structure pour des URL temporaires?
- htaccess et leeching
- htaccess contre le leeching
- Popularité et liens temporaires
- pages temporaires avant d'accéder à la home
- Backlinks temporaires : influence sur le positionnement ?
- A quoi sert les fichiers temporaires de mysql ?
- comment contrer le spam ?
- Attaques DDOS : comment contrer?
- Contrer les spammeurs de liens...
Consultez la description détaillée des produits ou services de Google suivants : Google Sandbox
- Analyse des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
