Jump to content

[Résolu] Code pour contrer le vol d'image (hotlinking) dans le .htaccess


Recommended Posts

Bonsoir,

 

Pour contrer le vol des images de mes sites (et la bande passante qui va avec) je teste ce code dans le .htaccess:

 

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$

RewriteRule .(jpg|jpeg|png|gif)$ http://example.com/image-anti-hotlinking.png [NC,R,L]

 

Cela fonctionne parfaitement sur mon Wordpress mais pas sur mon Prestashop qui continue d'afficher les images sans que j'ai spécifié son adresse comme authorisée.

 

Je pense que ça interfère avec les règles de réécritures déjà présentes mais je n'arrive pas à comprendre où ça coince.

Mon code est placé après le commentaire "do not remove .... bla bla bla" pour éviter qu'il disparaisse si je dois regénérer le .htaccess.

 

Peut-être qu'il faut procéder autrement sur Presta ?

 

Bref, tout aide est la bienvenue :) .

 

Edit, il y a une partie du code que le forum refuse d'afficher, la totalité est visible là :http://www.infowebmaster.fr/tutoriel/eviter-le-hotlinking-de-ses-images

Edited by bcd (see edit history)
Link to comment
Share on other sites

Bonjour et merci pour la réponse.

 

Ca fonctionne (nan je veux pas donner l'url :ph34r: ): j'ai vérifié avec la commande -site:monsite.com inurl:monsite.com qui permet de retrouver les voleurs "indexés" par google.

Mis en place sur le blog "en vrai" ce matin, mes chapardeurs ont maintenant une jolie photo de banane (hébergée ailleur tant qu'à faire) qui s'affiche à la place de mes images donc ça marche, enfin sauf pour Pinterest mais il y a peut-être une subtilitée qui m'échappe pour ce site. (code à améliorer donc)

 

A noter que pour la boutique je teste encore en local mais le test avec WP était concluant : pas d'url localhost /monsite autorisé = pas d'images ou celle de remplacement selon le code indiqué.

 

Pour ma boutique sous Prestashop, rien à faire j'ai essayé de placer le code à différents endroits, au mieux ça bloque toutes les images type background mais pas celles des produits.

 

Je pense que mon code entre en conflit ou n'est pas pris en compte avec ces règles déjà présentes :

# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

Autre précision, le but n'est pas d'empêcher le vol d'image (c'est impossible) mais de ne pas saturer inutilement mon hébergement: c'est un mutu qui tourne bien (petite boutique), mais j'aimerais bien supprimer les sangsues.

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour,

 

A force de tâtonner, j'ai fini par réussir à trouver le bon emplacement pour ajouter mon bout de code de manière à ce qu'il fonctionne correctement, soit juste après les règles de réécritures des images faites en auto par Prestashop.

 

Si ça peut intéresser d'autres personnes, comme ceci : le code ajouté est en vert

 

# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !bing\. [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule .(jpg|jpeg|png|gif)$ http://imagederemplacement.jpg

 

 

Par contre en cas de régénération du htaccess, il faudra remettre le code à la main.

 

Désolé le forum ne veut toujours pas afficher la ligne qui autorise monsite à afficher les images, voir le lien dans le premier post pour trouver comment l'écrire.

Edited by bcd (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...