Blog Tool Box

Empêcher le hotlinking d’images

Le hotlinking consiste à utiliser l’adresse d’un fichier publié sur un site web, le plus souvent une image, pour l’afficher sur un autre site.

Concrètement, imaginez que je suis sur votre blog à lire un de vos article qui est accompagné d’une photo. Je trouve cette image sympa et j’aimerai également l’utiliser pour enrichir un futur article sur mon blog. Pour cela, j’ai deux moyens d’utiliser et de mettre en ligne cette image : soit je l’enregistre sur mon hébergement ou soit je fait un lien direct avec celle hébergée chez vous.

Dans le cas où je fait un lien direct (hotlinking) c’est vous qui me « prêtez » votre bande passante que vous payez tout les mois pour afficher l’image sur mon blog. Cette technique relativement « sauvage » peut causer beaucoup de torts si l’article du hotlinkeur est très visité car l’image en question sera téléchargée de nombreuses fois. Cela peut dans certains cas ralentir le site d’origine, lui faire dépasser son quota mensuel de bande passante, etc.

Il est possible de se protéger de ce genre d’abus via un simple fichier .htaccess à la racine de son espace web :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monblog.fr(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mondeuxiemeblog.fr(/)?.*$ [NC]
RewriteRule \.(gif|jpe?g|png|bmp)$ /antihotlink.jpe [L,NC]

Seuls les deux noms de domaine spécifiés (monblog.fr et mondeuxiemeblog.fr) seront autorisés à faire des liens directs avec les images possédant une extension de type .gif, .jpg, .jpeg, .png ou .bmp. Le fichier antihotlink.jpe (nommé .jpe pour éviter d’être bloqué par les règles précédentes) sera l’image affichée à la place de l’image voulue par le hotlinker, histoire de montrer en image que ne voulons pas de hotlinking sauvage.

Si vous voulez simplement interdire le hotlinking sans image d’avertissement, il suffit de remplacer la dernière ligne par celle-ci :

RewriteRule \.(gif|jpe?g|png|bmp)$ - [F]

Attention : il faut également (si besoin) rajouter des conditions pour autoriser les lecteurs RSS en ligne à télécharger les images, par exemple pour Netvibes :

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

A vous d’adapter les différentes règles selon votre cas.

Par ailleurs, il existe des sites spécialisés dans l’hébergement gratuit d’images comme ImageShack.