Auteur Sujet: Anti-hotlink : comment récupérer le nom du fichier ?  (Lu 3515 fois)

0 Membres et 1 Invité sur ce sujet

ericf

  • Invité
Anti-hotlink : comment récupérer le nom du fichier ?
« le: 26 Octobre 2008 à 20:27:43 »
Bonjour,
J'utilise depuis plusieurs années un script anti-hotlink qui loggue normalement le nom du fichier recherché. Hors, sur phpnet, je ne récupère pas le nom du fichier, mais la mention "/hotlink2.php?namefile=image%5bL,QSA%5d".

Voici une partie de mon .htaccess :
#RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.***.com/hotlink2.php?namefile=image[L,QSA] #Ne renvoie pas le nom de l'image
RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.***.com/hotlink2.php?namefile=image [L]

Comment faire pour obtenir à nouveau le nom du fichier hotlinké ?
« Modifié: 09 Décembre 2017 à 20:33:46 par ericf »

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #1 le: 27 Octobre 2008 à 09:30:37 »
Bonjour,

En mon sens il manque un espace entre "image" et "[L,QSA]".
Le code correct serait donc :
#RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.aideinfo.com/hotlink2.php?namefile=image [L,QSA]
RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.aideinfo.com/hotlink2.php?namefile=image [L]

Bonne continuation !
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #2 le: 12 Novembre 2008 à 12:26:56 »
Merci de ta réponse. J'ai déjà essayé, ça ne change rien.

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #3 le: 12 Novembre 2008 à 12:34:42 »
Salut,

Possibilité de voir la totalité de ton HTACCESS ?
J'ai des codes similaires sur PHPNET et cela fonctionne pour moi...
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #4 le: 12 Novembre 2008 à 13:10:02 »
Le problème n'est pas le blocage, mais la récupération du nom de fichier qui était appelé.

ErrorDocument 401 http://www.***.com/index.php?page=401
#ErrorDocument 403 http://www.***.com/403.html
ErrorDocument 404 http://www.***.com/index.php?page=404
ErrorDocument 500 http://www.***.com/index.php?page=500

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?***.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(services\.)?***.com/$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?***.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://(.*\.)?***.com/.*$ [NC]

#RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.***.com/hotlink2.php?namefile=image[L,QSA] #Ne renvoie pas le nom de l'image
RewriteRule \.(gif|jpg|png|bmp|jp2|tif|tga|wbmp)$ http://www.***.com/hotlink2.php?namefile=image [L]
#RewriteRule \.(zip|exe)$ http://www.***.com/[L,QSA]

Options -Indexes
« Modifié: 09 Décembre 2017 à 20:32:51 par ericf »

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #5 le: 12 Novembre 2008 à 13:47:39 »
Salut,

Donc en faites si je comprend bien tu veux que à la place de "image" dans le querystring tu es le nom de l'image appelée.
C'est bien ça ?

Par exemple tu veux que "monImageAppellee.gif" redirige sur "http://www.aideinfo.com/hotlink2.php?namefile=monImageAppellee.gif".

NB : ce n'est à mon avis pas la bonne façon d'empêcher les hotlinking, et là ça va mettre beaucoup plus de temps pour charger tes images.
« Modifié: 12 Novembre 2008 à 13:49:28 par Just »
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #6 le: 12 Novembre 2008 à 15:09:15 »
Oui, je souhaite récupérer l'image hotlinkée. Ca me permet de savoir précisément ce qui est hotlinké.

Citer
ce n'est à mon avis pas la bonne façon d'empêcher les hotlinking, et là ça va mettre beaucoup plus de temps pour charger tes images.

Tu peux expliciter ?

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #7 le: 12 Novembre 2008 à 16:01:53 »
Je suppose que ton idée est de traiter l'appel des fichiers images via un script PHP qui va analyser la source de l'appel (via le REFERER par exemple), et va envoyer - ou non - le fichier au client.
Ce qui nécessite donc une analyse à chaques chargement et empêche la mise en cache de l'image, donc chargement plus lourd.

Alors que, en fin de ton htaccess ont trouve une méthode bien plus efficace et bien moins gourmande, pourquoi ne pas l'exploiter ?
Voir plus sur http://httpd.apache.org/docs-2.0/misc/rewriteguide.html#access

Sinon pour ta solution c'est quelque choses du genre :
RewriteRule ([^/]+\.(gif|jpg|png|bmp|jp2|tif|tga|wbmp))$ http://www.aideinfo.com/hotlink2.php?namefile=$1 [L]
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #8 le: 12 Novembre 2008 à 21:05:16 »
Non, le blocage se fait par le .htaccess. Le fichier PHP, c'est juste pour pincer le "hotlinkeur"

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #9 le: 13 Novembre 2008 à 09:57:52 »
Salut,

Hum OK je comprend ^^ un genre de "sniffeur" :).
Sauf que le blocage HTACCESS se fait logiquement en amont de l'appel PHP.
Et donc le PHP n'est pas appelé, et le hotlinkeur pas identifié.

Sauf erreur de ma part...
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #10 le: 13 Novembre 2008 à 12:28:33 »
Ca marchait avant sur Venigo ! Ca ne marchait plus chez 1and1, et ça ne marche pas non plus ici. A la différence que PHPNet utilise Apache 2, les précédents utilisaient Apache 1.
La transmission à PHP se fait par http://www.****.com/hotlink2.php?namefile=image, qui devrait donc transmettre en paramètre le nom de l'image bloquée.
« Modifié: 09 Décembre 2017 à 20:33:24 par ericf »

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #11 le: 13 Novembre 2008 à 13:29:02 »
Hum mauvaise interprétation de ma part, j'avais omis les rewritecond dans ton HTACCESS.
Pour l'histoire du nom de fichier qui n'est pas transmis tu as essayé mon code ?
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #12 le: 13 Novembre 2008 à 14:33:34 »
Avec $1, j'obtiens "namefile=png", et avec $0, "namefile=.png".

Hors ligne Just

  • Expert
  • ****
  • Messages: 924
    • AiN-IRC LE portail du 01 [Ain]!
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #13 le: 13 Novembre 2008 à 14:38:49 »
En ayant bien mis "([^/]+\.(gif|jpg|png|bmp|jp2|tif|tga|wbmp))$" en masque de capture ?
Just OnMyOwn ... :B
"Be CoOl, KeEp CoOl, HaVe FuN!"
-
http://www.ain-irc.net/
http://www.funpart.net/

ericf

  • Invité
Re : Anti-hotlink : comment récupérer le nom du fichier ?
« Réponse #14 le: 13 Novembre 2008 à 14:54:39 »
Effectivement, j'avais oublié une partie de la ligne. Ca marche. Merci.