Accueil > Outils & Media > Référencement > Comment se prémunir et lutter contre le hotlinking ?
Référencement

Comment se prémunir et lutter contre le hotlinking ?

Lutter contre le hotlinking
Partager

Il est des techniques en développement web qui peuvent sembler anodines mais qui se révèlent extrêmement néfastes pour celles et ceux qui en subissent les conséquences. Le hotlinking en fait partie.

Hotlinking, kezaco ?

Les termes « inline linking », « leeching », « piggy-backing », « direct linking » ou encore « offsite image grabs » sont également employés à son propos. En Français, on parle de liaison automatique. Tout cela pour désigner une même réalité : le fait d’utiliser l’adresse d’un fichier publié sur un site web (le plus souvent une image) sur la page de son propre site, forum, blog… Attention : les sites d’hébergement légaux comme Flickr ne sont pas visés dans cet article.

En quoi cela est-ce problématique ? Il n’est pas rare, lorsque l’on débute dans la conception d’un site web ou d’un blog, de récupérer une image venant d’un autre site en entrant directement l’adresse dudit fichier. C’est rapide et ça peut rapporter gros ! En tout cas, cela est plus pratique que de télécharger l’image pour l’uploader ensuite sur son site.

La technique est d’autant plus commode qu’elle semble indolore pour celui qui l’utilise. Rien à voir avec le contenu dupliqué (« duplicate content ») qui consiste à copier un contenu pour le mettre sur la page d’une autre adresse URL. Dans ce cas, il s’agit d’une pratique ardemment combattue par Google (et les moteurs de recherche en général) et plus précisément par son filtre Panda. Ce dernier distingue le contenu original des simples copies qui font chuter le référencement des pages sur lesquelles elles se trouvent. Autant dire que les rédacteurs web n’ont aucun intérêt à verser dans le contenu dupliqué.

Rien de tel pour le hotlinking. Mais dans les faits, la pratique peut s’avérer aussi pénalisante que le duplicate content, si ce n’est plus.

Le hotlinking, c’est chaud

En effet, la personne qui utilise l’URL d’origine d’une image pour son site web consomme la bande passante… du propriétaire de l’image ! Comment ça ? En l’affichant par ce procédé, une requête est envoyée au serveur qui l’héberge. Celui-ci transfère alors le volume de données nécessaire à l’envoi du fichier. En plus de se faire « voler » son image, la victime de liaison automatique voit les ressources de son site web servir à d’autres. Ce qui peut s’avérer extrêmement pénalisant (ralentissement de l’affichage...) si les « hotlinkers » sont nombreux ou génèrent un fort trafic. Pour faire une analogie avec la vie quotidienne, ce serait comme rouler dans sa voiture en siphonnant l’essence de celle de son voisin !

Le scénario peut même virer au cauchemar avec des conséquences financières. Dans l’hypothèse d’une consommation excessive de bande passante, l’hébergeur Internet facture au détenteur du site source le surplus. Pire : si l’hébergement est mutualisé, le site peut être carrément suspendu. Cerise sur le gâteau : les fichiers « récupérés » avec le hotlinking peuvent servir à concevoir des publicités sur Google AdSense et ainsi générer des revenus !

Comme indiqué précédemment, le hotlinking n’a pas d’effets néfastes sur le SEO. Mais cela suppose que l’affichage de l’image ait été correctement paramétré. À l’inverse, le site source peut se faire voler (en plus du reste !) le référencement de son image dans la section de Google dédiée à cet effet. Avec, là encore, des conséquences financières réelles puisque Google Image est un important levier de conversions et de leads pour les entreprises.

Il serait donc dommage de subir les conséquences du hotlinking d’autant plus qu’il existe des moyens pour s’en prémunir. MyJalis vous dit lesquels.

S’adresser au hotlinker

Avant d’entrer dans le détail technique, il faut savoir que le hotlinking est souvent le fait du webmestre ou blogueur débutant qui n’a pas d’intention malveillante et choisit la solution la plus commode pour publier des images sans mesurer les conséquences de son acte. C’est pourquoi MyJalis vous conseille simplement de contacter cette personne pour mettre fin au problème. L’argument juridique peut compléter ceux technique et moral : si l’image est une création protégée par le droit, la personne qui l’utilise sans demander l’autorisation préalable au propriétaire contrevient à la loi.

Toutefois, la tâche peut vite devenir laborieuse si la pratique est massive. Dans ce cas, il vaut mieux prévenir que guérir. Un certain nombre d’outils sont à la disposition du webmestre pour empêcher toute liaison automatique.

Le bouclier des réseaux de diffusion continu

Si vous êtes sur Wordpress, MyJalis vous recommande de recourir aux réseaux de diffusion de contenu (« content delivery network » ou CDN) comme KeyCDN et Cloudfare qui offrent une protection efficace contre le hotlinking. Cela d’autant plus que vous n’avez rien à changer à votre installation Wordpress. Dans le cas de KeyCDN, il suffit juste de se rendre sur Zonereferrers et d’ajouter les URL des images à protéger. En cas de hotlinking, le « voleur » verra s’afficher un message d’erreur 403.

Par contre, les crawlers pourront toujours accéder à vos images et les indexer. Toutefois, cette protection peut s’avérer insuffisante en ce qu’elle ne s’étend pas au serveur d’origine.

Gestion du hotlinking dans Apache

Pour combler ce manque, il convient d’aller à la racine de votre site web pour installer un script de gestion des hotlinks sur vos images. La manipulation nécessite que votre site fonctionne sous Apache ce qui est le cas de l’immense majorité des hébergements actuels.

Pour ce faire, il convient d’ouvrir le fichier .htacess qui se trouve à la racine du site web. C’est par son intermédiaire que l’administrateur traite les demandes de ressources fichier. Une fois le fichier ouvert, les lignes de code suivantes peuvent être ajoutées :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC]
RewriteRule .(jpg|jpeg|png|gif|svg)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]

Regardez attentivement la troisième et la septième ligne. La première permet de définir le ou les sites autorisés à bénéficier de votre image ; la deuxième, l’image qui apparaît à l’écran en lieu et place de celle faisant l’objet d’une protection contre le hotlinking. Cela n’est pas une obligation mais c’est un bon moyen d’envoyer un avertissement à l’auteur de la « fraude ». En l’espèce, le lien dropbox peut être remplacé par tout autre service de stockage de fichiers.

Des alternatives existent comme le fait de ne pas envoyer d’image ou, mieux, faire apparaître un message d’erreur. À vous de juger selon la situation. Attention également à ne pas oublier de mentionner aux lignes 4 à 6 les moteurs de recherche autorisés à crawler votre image car vous ne souhaitez évidemment pas empêcher son indexation.

Gestion du hotlinking dans NGINX

Si votre site web fonctionne sous NGINX, il convient d’ouvrir le fichier de configuration et d’ajouter les lignes de code suivantes :

location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked .yourwebsite.com;
if ($invalid_referer) {
return 403;
}
}

La logique reste la même. Dans un premier temps, vous définissez les fichiers à protéger du hotlinking. Dans le second, vous nommez les sites autorisés à faire un lien vers ces fichiers. Dans le cas contraire, une erreur de type 403 s’affiche à l’écran.

En définitive, MyJalis vous invite à vous protéger contre le hotlinking en raison des désagréments que cela peut causer à votre site et, in fine, à votre business. Un outil comme Google Images peut être une source importante de trafic. Il serait dommage de s’en priver et de laisser d’autres profiter du fruit de votre travail.

Article de Thierry Randretsa

Nous contacter
Les champs indiqués par un astérisque (*) sont obligatoires
Nous contacter
Les champs indiqués par un astérisque (*) sont obligatoires