Htaccess : Combattre le hotlinking

Avec Weesk, la question s’est rapidement posée puisqu’il s’agissait de mettre rapidement en place un système simple permettant de bloquer le .

Le hotlinking consiste pour une personne malveillante d’afficher les de votre site sur son propre site. Votre bande passante en subit donc les conséquences et votre quotat vient parfois à diminuer rapidement. Pour parer cette pratique il existe plusieurs méthodes mais la plus simple (celle que j’expliquerais ici) consiste à ajouter quelques lignes dans votre : résultat immédiat garanti !

Autoriser l’affichage sur un unique site

Commençons avec le code le plus simple, celui qui vérifie si le domaine est bien celui de votre site Internet et dans le cas contraire affiche un belle erreur :

1 RewriteEngine On
2 RewriteCond %{HTTP_REFERER} !^$
3 RewriteCond %{HTTP_REFERER} !^http://www.example.com [NC]
4 ReWriteRule .*\.(gif|png|jpe?g)$ – [F]

Dans le détail et par numéro de ligne :

1. Cette ligne active le module Rewrite Engine qui permet entre autre d’utiliser diverses fonctions comme la réecriture d’url ou encore le vol d’image (ce qui nous intéresse ici). Cette ligne est indispensable au bon fonctionnement de ces quelques lignes de codes. Ne l’oubliez pas :)

2. Il s’agit ici d’une condition simple qui est présente uniquement dans le cas où quelques visiteurs de votre site auraient un antivirus ou firewall mal configuré et qui pourrait bloquer l’accès aux images sur VOTRE site. Donc on évite ce genre de désagrément en ajoutant cette ligne.

3. Celle-ci définit exactement la condition pour laquelle notre script va fonctionner. A la place de http://www.example.com, remplacez par l’url de votre site. Cela permettra à Apache qui gère le htaccess de connaître sur quel site il ne doit pas bloquer les images.

4. Enfin, vous spécifiez sur cette dernière ligne les extensions que vous désirez bloquer. Comme vous pouvez l’imaginer, il est donc possible de bloquer d’autres extensions comme les PDF ou encore les fichiers doc de Word.

Autoriser l’affichage sur plusieurs sites

Il suffit d’une ligne de plus pour autoriser un site à afficher vos images. Cela peut s’avérer utile dans le cadre d’un partenariat.

1 RewriteEngine On
2 RewriteCond %{HTTP_REFERER} !^$
3 RewriteCond %{HTTP_REFERER} !^http://www.example.com [NC]
4 RewriteCond %{HTTP_REFERER} !^http://www.mon-partenaire.com [NC]
5 ReWriteRule .*\.(gif|png|jpe?g)$ – [F]

Renvoyer une image plutôt qu’une erreur

Dans certains cas, il s’avère que l’utilisation d’une image à la place d’un message d’erreur peut devenir beaucoup plus judicieux. Prenons un exemple :

Un petit malin détient un blog et ne reprend que les articles d’autres blogs dont vous faites partie. Pas de chance, ce petit fanfaron a repris toutes les images que vous ayez postées jusqu’a présent. Il suffit que son blog soit un peu connu pour que cela crée un gouffre dans votre quotat de bande passante.

Vous décidez donc de modifier une ligne de votre htaccess :

5 ReWriteRule .*\.(gif|png|jpe?g)$ /images/owned.jpe [L]

Pour que la personne ait l’heureuse surprise de découvrir l’image owned.jpe à la place des autres :

PS : Veillez à bien laisser l’extension .jpe pour que cela fonctionne, ce n’est pas une erreur de frappe.

Expérimentation : Autoriser l’indexation de vos images

Toutefois il semblerait qu’avec cette astuce, vos images n’apparaissent plus dans les moteurs de recherche d’image telle que Google Image ou encore Yahoo. Cela pose problème surtout si vous avez du contenu visuel de qualité et que vous souhaitez apparaître dans ce genre de moteur. Je vous conseille donc d’ajouter ces quelques lignes.

Attention : Je n’ai toutefois pas encore pu vérifier si ces quelques lignes autorisent ou non l’affichage des images mais il semblerait que cela fonctionna alors je me permets de vous tenir au courant :

RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]

J’espère que grâce à cette article vous pourrez économiser du temps, de l’argent et de la bande passante :D


4 commentaires sur “Htaccess : Combattre le hotlinking”

  1. CADEEEUH says:

    Intéréssant tout ça, merci bien.

  2. Matt says:

    Merci =). Et j’aime beaucoup l’astuce pour remplacer l’image! Au moins j’aurai plus besoin de contacter les auteurs des sites qui récupèrent mes images sur le leur!

  3. Ceciliayb says:

    Great page.., brother

  4. Bonjour tout le monde, et un très grand merci a vous, car vous m’avez rendu un grand service avec ces lignes de code :-)
    vraiment car notre site utilise beaucoup d’images et c’est une mine d’or pour les leecher et voleur de ressource
    tout l’équipe tutsps vous remercie du fond du cœur :heart: :heart: :heart:

Vous avez la parole :

Retourner au début