Hotlink : définition et protection

18/01/2011 71 commentaires par Cédric G. +

À l’heure où de plus en plus de photographes ont leur espace web pour diffuser leurs images, il n’est pas rare de devoir « faire la police » avec les indésirables pompeurs et recopieurs de tous poils. L’une des pratiques les plus en vogue est le hotlink : elle consiste à afficher l’image sur un autre site, depuis votre site, directement !

Celles et ceux qui me suivent sur Facebook ont certainement pris connaissance de mes dernières sautes d’humeur sur cette pratique du hotlink… et les conséquences pour les pompeurs en herbe !

Voici quelques trucs et astuces pour s’en prémunir 🙂

Comment fonctionne le hotlinking ?

Il faut remonter au code HTML  pour comprendre d’abord comment sont affichées les images sur les pages web. Sans entrer dans les détails, le HTML est un langage simple structuré par balisage : des balises (en l’occurrence balises HTML) délimitent chaque élément de la page de manière hiérarchique, encadrant les valeurs et apportant des attributs à leur contenu (la largeur ou la hauteur de l’image, ou le texte alternatif permettant sa description, par exemple).

L’affichage classique d’une image se réalise grâce à la balise img avec ici une balise alt pour son descriptif, dans le code d’une page située sur le site www.aube-nature.com :

...
<img src="/lieu/image.jpg" alt="Description" />;
...

Un site effectuant un hotlink procède donc simplement, en utilisant dans l’attribut src (qui signifie « source ») de ses balises image, l’adresse directe de votre photographie. C’est d’ailleurs ce que nous faisons usuellement, par exemple, lorsque nous affichons nos images depuis nos propres sites sur les forums photo 😉

...
<img src="http://www.aube-nature.com/lieu/image.jpg" alt="" />;
...

Plus schématiquement, cela donne ceci :

Principe du hotlink

Au final, vous vous retrouvez avec l’une de vos photos affichées sur un site qui n’est pas le votre, sans autorisation de votre part, et la cerise sur le gâteau : l’auteur de ce méfait vous pique votre bande passante !

En effet, le fichier étant « téléchargé » depuis votre serveur, c’est ce dernier qui fournira les ressources nécessaires pour délivrer l’image à l’internaute ! Imaginez l’impact que peut avoir ce genre de comportement si plusieurs de vos images sont affichées sur des forums à très fort trafic !…

Détecter les hotlinks

La première chose avant d’envisager une contre mesure, consiste simplement à retrouver les images qui sont « hotlinkées » depuis votre serveur web. Pour ce faire, deux méthodes existent :

  • utiliser les moteurs de recherche (Google Images notamment)
  • utiliser un script spécifique au niveau de votre serveur

Méthode 1 : utiliser Google Images

Il existe une méthode relativement fiable destinée à retrouver à minima les images hébergées sur votre serveur, mais pas affichées sur votre site, grâce aux options de recherche de Google. Toutefois, cette méthode a une limite de taille : elle ne fonctionne que pour les images indexées par le moteur de recherche !

Il suffit de se rendre dans Google Images, puis d’utiliser la syntaxe suivante :

-site:aube-nature.com inurl:aube-nature.com
Exemple de recherche de hotlink par Google

Exemple de recherche de hotlink par Google

L’attribut « site: » permet de limiter les recherches à un site (ou un domaine) donné ; en utilisant le signe « -«  devant, on demande à Google d’éliminer ce critère des résultats de recherche, au lieu de l’utiliser.

L’attribut « inurl: » permet lui, de rechercher l’expression-clé qui lui est accolée, dans toutes les URL de la page.

En clair, on demande donc à Google d’afficher toutes les images non affichées sur les pages des sites « aube-nature.com », mais dont les URL dans le code, comportent la mention « aube-nature.com » 🙂

Méthode 2 : utiliser un script

Je ne vais pas entrer dans les détails car la méthode sera abordée ci-après, mais elle consiste en gros à détecter à la volée les demandes d’images sur votre serveur, grâce à un fichier .htaccess dûment paramétré pour ce faire, et à renvoyer une image (pas forcément l’originale !) mais en passant systématiquement par un petit script php qui va préalablement noter quelque part, dans un fichier texte ou une base de donnée, les « coordonnées » du site demandeur.

Fonctionnement d'un script anti-hotlink

C’est notamment cette méthode qui est utilisée par les outils spécifiques, que nous verrons en fin d’article ! On peut aller beaucoup plus loin avec cette méthode – on le verra plus tard – car il est également possible de fournir l’image initialement demandée, mais dans une version « édulcorée » (gros watermark par exemple)

Afin de préserver la bande passante (débit) de son propre serveur, on pourra héberger l’image « bidon » sur un compte gratuit Free, Orange, Wanadoo, ImageShack ;)

Contres-mesures applicables aux hotlinkeurs

Il existe plusieurs mesures possibles pour « contrer » les voleurs d’images et de bande passante :

  • ne rien renvoyer (l’image ne s’affichera simplement pas) : une solution radicale et efficace, demandant un minimum de ressources de votre côté
  • renvoyer une image « bidon » dûment signée avec l’adresse de votre site : toujours intéressant pour rappeler à l’ordre les voleurs, et inviter indirectement ses visiteurs à venir sur votre site 🙂
  • renvoyer l’image demandée, mais signée à la volée via un script
  • l’une des trois solutions précédentes, gérée selon le site demandeur : un choix luxueux que permettent certains outils 😉
  • renvoyer une erreur (!) sur le site du voleur : très pénible pour ses visiteurs 😉

Tous les choix sont discutables, pour ma part j’ai opté (pour ce blog par exemple) pour la solution de luxe : une gestion quasi quotidienne, mais qui permet de contrôler où et comment mon contenu est utilisé (car il n’est pas rare que le texte suive les images !!!)

Gérer le hotlink au niveau technique

Ce paragraphe va être un peu technique, aussi je préviens à l’avance que je n’assurerai aucun support technique à son propos 😉 ; nous allons donc voir comment mettre en oeuvre simplement, sur un serveur web de type Apache (soit 99% des hébergements actuels), les scripts de détection et de gestion des hotlinks sur vos images.

Étape n°1 : détection des demandes et traitement au niveau du serveur

La base de toute gestion de hotlinking passe obligatoirement par un fichier appelé .htaccess, situé généralement à la racine de votre site web. C’est dans ce fichier que l’on procède usuellement aux optimisations techniques, à la mise en place de la réécriture d’URL, et de toutes les joyeusetés du genre : il permet, pour résumer, d’indiquer au serveur comment se comporter lorsqu’il reçoit des demandes de ressources fichier !

Notre détection de hotlink va donc utiliser un module spécifique des serveurs Apache, appelé « mod_rewrite ». Il permet notamment d’analyser les adresses de pages ou de ressources fichier demandées au serveur, et d’en transformer le cas échéant la destination.

Notre fichier .htaccess va donc se voir ajouté les lignes suivantes :

Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

</IfModule>

Tout ce qui nous intéressera sera donc placé entre les balises <IfModule …>, ce qui permettra, si votre serveur ne gère pas la réécriture d’URL (c’est le cas chez Free me semble-t-il), de passer outre leur contenu sans générer d’erreurs.

On se contente donc d’activer la réécriture d’URL (RewriteEngine On), puis de préciser où se situe la racine du site pour ce faire (RewriteBase /) : du classique.

La première ligne, un peu hors contexte, va permettre d’interdire simplement aux internautes d’afficher le contenu des sous-répertoires de votre site, là où nous plaçons typiquement nos images !

Le principe des règles de réécriture dans un fichier .htaccess consiste à établir des règles de sélection, appelées « conditions », puis d’appliquer une règle de réécriture en conséquence. Voici notre règle (explications ensuite !)

Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} .*jpg$|.*jpeg$|.*gif$|.*png$ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !aube-nature\.com [NC]
    RewriteCond %{HTTP_REFERER} !beneluxnaturephoto\.net [NC]
    RewriteCond %{HTTP_REFERER} !chassimages\.com [NC]
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteRule (.*) http://monsite.free.fr/mon-image-bidon.jpg

</IfModule>

Nous avons donc fait le choix de cibler toutes les demandes faites au serveur, dont les noms de fichiers (REQUEST_FILENAME) contiennent .jpg, .jpeg, .gif ou .png de manière à cibler uniquement les images (ligne 7). La clause [NC] qui signifie « no case » en fin de ligne permet de s’affranchir des problèmes de majuscules/minuscules…

C’est grâce au referer (site de provenance de la demande) que nous allons établir si le demandeur est autorisé ou non à bénéficier de notre image : dans l’exemple ci-dessus, on exclut tout le monde sauf mes propres sites aube-nature.com, mais également deux célèbres forums, ainsi que les sites Google, et le cache Google.

Ces règles étant faites par exclusion, si le demandeur ne fait pas parti de ces sites, ALORS la règle ligne 14 va s’appliquer ! Ici, on a choisi de renvoyer systématiquement une image bidon, située sur un serveur Free (nb : factice dans mon exemple, ne recopiez pas bêtement !)

Il est possible de ne rien renvoyer du tout (l’image ne s’affichera simplement pas sur les sites des voleurs) grâce à la syntaxe suivante (remplace la dernière ligne du code précédent) :

    RewriteRule (.*) -

Mais il est également possible de retourner un script php, qui lui va « traiter » à la volée les paramètres qu’on lui aura passé : le fichier demandé, mais également les informations liées au demandeur !

    RewriteRule (.*) /hotlink.php?img=%{SCRIPT_FILENAME}&ref=%{HTTP_REFERER}

Les deux premières options permettent de s’arrêter là, puisqu’elles fonctionnent sans nécessité de recourir au php pour gérer le devenir des demandes. Si vous voulez cependant aller plus loin, voir l’étape suivante !

Étape n°2 : gérer les images via un script php, pour les sites non autorisés

L’optique de ce blog n’étant pas la programmation mais la photographie, je ne vais pas vous faire un cours de php. Aussi j’irai droit au but 😉 avec ce script, à disposer à la racine de votre site (au même niveau que le fichier .htaccess) :

<?php
if ( !array_key_exists('img', $_GET) )
	exit();
$image = nom_de_fichier($_GET['img']);

if ( !is_image($image) )
	exit();

// ICI LE CODE À EXÉCUTER !
// On peut imaginer soit un script retournant l'image mais
// annotée de l'adresse de votre site, soit simplement l'image
// originale, mais en inscrivant le demandeur dans un fichier
// ou une base de données

// Fonction retournant le nom du fichier
function nom_de_fichier($filename) {
    $pos = strrpos('/'.$filename, '/');
    if($pos===false) {
        return false;
    } else {
        return substr($filename, $pos);
    }
}

// Fonction retournant vrai si le fichier demandé est bien une image
function is_image($file)
{
	if ( !file_exists($file) || !@getImageSize($file) )
		return false;
	return true;
}

?>

Au niveau du code applicable, tout est possible : marquage de l’image, inscription du referer (site du voleur) dans un fichier ou une base de données, etc. ; voici un exemple de script à télécharger, que j’avais conçu il y a quelque temps déjà, et qui permet de marquer automatiquement les images avec un filigrane, à la volée.

Étape n°2 (variante) : renvoyer un message d’erreur

Méthode beaucoup plus « expéditive » : renvoyer un message d’erreur (boîte de dialogue) avec un code HTTP 401 (« accès non autorisé ») qui va s’afficher systématiquement sur le site du contrevenant ! Voici le script à inscrire dans le fichier hotlink.php :

header('WWW-Authenticate: Basic realm="Photographies affichées " .
    "sans autorisation. Visitez http://blog.aube-nature.com pour voir " .
    "les photos originales dans leur vrai contexte !"');
header('HTTP/1.0 401 Unauthorized');

Inutile de vous dire que de manière générale, il n’y a pas besoin de communiquer avec le webmaster, qui retirera de lui-même les images après un bon gros stress 😉

Un outil pour les « gros sites » : Visohotlink

Plutôt que de réinventer la roue, il est possible de recourir à des outils tiers, et Visohotlink en est un. Cette superbe application web est un gestionnaire de hotlink très performant, développé par un webmaster qui en avait marre de se faire « emprunter » ses photos directement sur son serveur.

Extrêmement complet, il permet de classer, faire des statistiques, ajouter des listes de sites de confiances, etc. et surtout, au cas par cas au choix, de laisser l’image s’afficher, ne rien afficher, afficher une image bidon ou encore afficher l’image demandée, mais avec un filigrane paramétrable. Autant dire une solution complète !

Il existe par ailleurs une version spécifique pour le CMS Joomla (que certains photographes utilisent pour leur site).

L’outil n’a pas évolué depuis 2007 et je ne l’ai pas retesté (je l’ai utilisé en 2008 sur l’un de mes sites). Mais en principe il devrait toujours fonctionner ! Je vous laisse le soin de découvrir sur le site de l’auteur les multiples fonctionnalités de l’outil, par ailleurs simple à installer !

Un outil pour WordPress : Pictpocket

D’aucun se demanderont comment j’ai fait, depuis mes différents sites sous WordPress, pour retrouver si facilement les derniers voleurs d’image… La réponse tient en un plugin, dont le nom très évocateur se suffit à lui-même : PictPocket !

Produit par Semageek, ce petit plugin bien pratique permet en effet de gérer directement via le back-office de WordPress, la liste des images s’affichant sur les différents sites qui linkent vos fichiers… Un simple clic permet d’autoriser ou pas, et le cas échéant de classifier chaque site : super pratique, instantané et sans efforts !

PictPocket, le plugin anti-hotlink pour WordPress

PictPocket, le plugin anti-hotlink pour WordPress

Vous pouvez trouver quelques explications complémentaires sur le site de l’auteur, ainsi qu’un petit tutoriel vidéo.

Cela m’a également permis de trouver (via les images) « quelques » sites qui non seulement affichaient les photos… mais reprenaient mes articles, bien entendu sans autorisation.

Conclusion

Le hotlinking est une pratique de plus en plus courante, et j’ai été – même si j’étais conscient de ce phénomène depuis des années – le premier surpris quand j’ai vu combien de sites m’empruntaient mes images !

Les outils comme Google Images n’en sont pas étranger, dans le sens où ils permettent nativement l’accès direct aux fichiers image (ndlr : il existe une astuce pour éviter ça, basée sur un petit code javascript pour interdire les frames, mais elle fausse alors les statistiques de visites relevées sur votre site…) : cela incite donc quelque part les internautes à « prendre » les images là où ils les trouvent !

J’ai toujours trouvé cela un peu dommage car Google Images est une source de trafic énorme pour les professionnels de la photographie (chez moi 70% de mon trafic total) : se protéger des hotlinks (à défaut de pouvoir se protéger des voleurs tout court) est donc quelque chose d’indispensable !

, ,

L'auteur : Cédric G.

Auteur photographe animalier, informaticien et passionné d'animaux et de nature. Administrateur du blog Aube Nature

71 réponses sur Hotlink : définition et protection

  1. jmax a écrit

    on peut également modifier le htaccess pour qu’il demande un utilisateur/mot de passe en précisant image volée dans le texte d’accompagnement. Ultra efficace

    • Cédric G. a écrit

      Effectivement, c’est une astuce que je n’ai pas donnée ici (au niveau du code), mais c’est du même topo que le message d’erreur car on utilise finalement strictement le même mécanisme.

      Je vais voir pour retrouver un lien intéressant à ce sujet.

  2. Darth a écrit

    Merci pour cet article plus qu’intéressant!

    Je l’ai RT sur Twitter, car je pense qu’il est à diffuser en masse, et il va très certainement faire partie de mon prochain « blog tour ».

    C’est une vrai pépite que tu nous offres là!

    Je ne connaissais pas le plugin PictPocket, je pense que juste pour ça je te dois un ÉNORME merci!

  3. Pyrros a écrit

    MERCI !! Je cours essayer PictPocket !!

    en plus je viens de trouver via la commande dans google 2 voleurs à vocation commercial …

  4. Cédric G. a écrit

    Merci 🙂

    Je dois vous avouer que je l’ai découvert par hasard, car justement je voulais un plugin pour gérer les hotlinks sur WP…

    Et c’est ça qui m’a donné l’idée de l’article !

  5. Darth a écrit

    Sur mon blog photo les « emprunt » sont moins présent que je ne le pensais.

    Un gars à mit sur un forum marocain une de mes photos en ce faisant fièrement passé pour le photographe. 😆

    C’est pas correcte, mais pas gravissime non plus.

    Par contre, sur mon blog d’info, là c’est l’hécatombe, je ne pensais pas me faire voler autant d’article, c’est juste incroyable. O_o

    En tout cas, grâce à toi ils vont avoir de belles surprises!

  6. Pyrros a écrit

    une image en 3000×3000 ca défonce le site voleur et ca fait de la pub pour mon site 😉 l’adresse n’a jamais été aussi grosse sur un écran …

    ca marche bien au fur et a mesure de l’appels des images …

  7. annso a écrit

    Merci pour ce gros résumé, je pense que ce sera utile à beaucoup ! (et je suis contente de voir que Google ne détecte aucune de mes images utilisées ailleurs que sur mon site !)

  8. Bertrand a écrit

    Merci pour les liens. Pour moi ils ont l’énorme avantage de connaître ces personnes et de les identifier simplement et rapidement sur le net (selon le degrés d’utilisation des images).
    La personne qui fait du hotlink que tu repères téléchargera ensuite ton image (et pourra même la modifier légèrement). Et là, c’est plus compliqué de les retrouver ensuite…

  9. Semageek a écrit

    Merci pour ta contribution vis a vis du plugin PictPocket.

    Il faut néanmoins savoir qu’il est actuellement sensible à certaines failles de sécurité, au travers de failles XSS.

    Je n’ai actuellement pas le temps de coder une release, si quelqu’un se sent de faire la mise à jour, je veux bien filer le bébé (code sources et explications)

    Merci

    • Cédric G. a écrit

      Merci à toi !

      Je veux bien essayer de reprendre la contribution (disons que je connais pas trop mal WordPress 😉 avec une bonne trentaine de sites à mon actif, même si je ne me suis jamais penché sur les plugins !)

      • Semageek a écrit

        Les plugins, c’est pas bien compliqué, c’est juste du php, par contre le plus chiant a gérer c’est le dépot chez wordpress pour la mise à jour en live.

        Envoi moi un email, je te transmettrais les modification a intégrer (l’endroit) où sont les failles.

        Ça va devenir un plugin collaboratif, c’est bien ça…

    • Pyrros a écrit

      C’était trop beau !!! dommage à moins que quelqu’un puisse faire ce qu’il faut

      la ca dépasse de très loin mes compétences …

      • Cédric G. a écrit

        T’inquiètes Pyrros : je suis développeur de métier, ça devrait le faire 🙂

        Les failles XSS c’est pas ça le plus dur à corriger (dans le cas présent il faut VRAIMENT maîtriser le truc pour arriver à faire quelque chose…)

  10. Pyrros a écrit

    c’est certain que ce n’est pas l’arme absolue contre le pillage.

    Mais si cela peut faire évoluer la mentalité de certains « voleurs » ou de les punir … Je viens grâce Pictpocket de découvrir des hotlink qui se font du blé sur le dos mes photos -> facture complète pour passer l’envie de recommencer

  11. Zizounnette a écrit

    ohh !

    beh je m’en vais immédiatement mettre en place un htaccess comme ca !

    nice tips !

  12. Ben a écrit

    C’est peut-être naif de ma part et je vais me faire haïr, mais les liens de pages, d’images, etc … sont l’essence même du net tel qu’il a été pensé libre et ouvert.

    Je comprends bien le respect des droits d’auteurs et les problèmes de bande passante, mais ne serait-il pas préférable d’ajouter une watermark ou de fournir des balises à embarquer comme avec les vidéos youtube ?

    • Cédric G. a écrit

      Je suis bien d’accord Ben, et c’est d’ailleurs ce que je vais mettre en place sur mon site « photo » (enfin, la prochaine version) avec des versions spécifiques des images.

      Mais sur un blog comme celui-ci, je ne PEUX PAS admettre que l’on copie le contenu, qu’il soit texte et/ou photo.

      Faire un hotlink sur une image sans citer la source, c’est un vol, point barre. Je laisse d’ailleurs les images s’afficher lorsqu’un lien vers la source de l’image existe.

      Comme tu dis, le web s’appuie sur les liens. Mais faut pas que ce soit dans un seul sens 🙂

      • Ben a écrit

        Merci d’avoir répondu à la question que je me posais.

        Au passage site sympatoche que je découvre à l’occasion de cette article.

      • Laurent a écrit

        « Faire un hotlink sur une image sans citer la source, c’est un vol, point barre. Je laisse d’ailleurs les images s’afficher lorsqu’un lien vers la source de l’image existe. » : tout est là… J’essaie perso de toujours préciser la source. Mais ça a une limite. Quand on prend une image sur un site, et que ce site a lui-même volé une image sans préciser la source… c’est assez difficile à savoir ! 😉

    • Stéphane a écrit

      Salut,

      Un lien vers une page et un hotlink est quand même bien différent … Au début d’Internet, les utilisateurs connaissaient les contraintes techniques, et il était de bon aloi de demander au hotlinké l’autorisation. Maintenant qu’internet est devenu un média de masse, la pratique à en général disparu …

      Stef

  13. Franck a écrit

    Faut penser à mettre les images fabriquées à la volée en cache pour la solution php car sinon cela va consommer le serveur pour rien.

    • Cédric G. a écrit

      Le script (dans le zip) le gère à la volée 😉

      Si l’image n’existe pas => elle est créée, sinon elle est prise telle que.

      On pourrait bien entendu imaginer une version générant les images… sur un autre serveur ! Cela permettrait de préserver les performances de celui d’origine.

      En fait, énormément de choses sont possibles.

  14. cathy B a écrit

    Un grand merci pour ce billet très complet 🙂
    Je vais tester Pictpocket pour mon port-folio.
    C’est surtout dans mon blog que j’ai des vols en cascade. pas de pb de bande passante (blog blogger et hébergement picasa), mais il y a le déréférencement de mes photos, et ça m’énerve franchement d’alimenter des sites ou blogs pourris de pubs ou commerciaux. Et n’ayant pas accès au .htaccess, je cherche à posteriori dans les moteurs. C’est vrai qu’il faut que les images volées soient référencées chez notre voleur. Si elles ne sont pas trop mal indexées, elles nous sont vite réattribuées et ça devient très difficile de les retrouver. Je repère davantage de vols de photos en recherchant dans Google-web + option « sites avec images » que dans google-images. Et pour la recherche de certaines de mes photos particulièrement attractives, je recherche le texte de ma balise alt: rare sont les adeptes du glisser-coller qui pensent à l’effacer.
    J’ai une question subsidiaire: les images transparentes sur photo ou autres scripts destinés à éviter le hotlink ont-ils une incidence sur le référencement de ces photos par google-image?

    • Zipanu a écrit

      Hello Cathy,

      Si je puis m’immiscer dans le début de réponse à la question subsidiaire.

      Je pense que par la méthode htaccess on pose une règle d’exception pour google donc ça n’a aucune incidence.

      Même si je n’en ai aucune idée précise, pas de problèmes avec l’extension non plus.

    • Cédric G. a écrit

      Bonjour Cathy

      Les « protections » antivol ou anti-hotlink n’ont en principe aucune incidence tant que les images sont affichées via la balise HTML « img » dans le code du site, et pas en javascript bien entendu.

      Il faut simplement que Google puisse trouver l’image 🙂

      Les scripts anti-hotlinks doivent cependant ne PAS interdire Google d’accéder aux images, c’est la moindre des choses 😉

      • cathy B a écrit

        Merci pour ta réponse et celle de Zipanu. Il faut vraiment que je prenne le temps de voir ce qu’il est possible de bidouiller chez blogger bientôt! (Le + simple serait un déménagement en hébergement propre , mais pas le courage…)
        Bonne journée

  15. zonedevie photo a écrit

    Comme j’ai été un peu perdu dans les explications, j’ai une solution très efficace : mettre des photos très moches que personne n’a envie de voler!
    Bon je vais travailler mon htaccess 🙂

  16. Stéphane.e a écrit

    Article génial.
    Merci Cédric !

    Stéphane.

  17. Pascale Scarpi a écrit

    Super cette astuce, je vais en discuter avec mon informaticien de ce pas.

  18. Zipanu a écrit

    Merci pour toutes ces informations utiles et pertinentes, c’est plutôt effrayant comme phénomène et comportements, mais il ne vaut mieux pas attendre d’être volé pour le comprendre.

  19. Maud a écrit

    je ne connaissais pas le terme de « Hotlinks » mais je connaissais le principe, je n’avais pas non plus eu l’idée de me servir de l’image pour afficher un maessage sur le site en question – c brillant !

  20. Tessea a écrit

    Un blog nature de toute beauté .

    Merci de partager cette technique intéressante !

  21. Stéphane a écrit

    Salut,

    Attention à l’effet de bord du script trop lourd qui modifie l’image hotlinkée : le serveur va devoir recalculer l’image à chaque requête ce qui peut consommer tout le cpu/ram/… à coupler avec un mécanisme de cache par ex.
    Sinon, la redirection vers 127.0.0.1 marche bien aussi.

    Stéphane

    • Cédric G. a écrit

      Exact Stéphane

      Celui que j’ai passé dans le fichier zip en exemple, utilise effectivement un système de cache (l’image n’est générée que si elle n’existe pas, sinon c’est bel et bien l’image déjà générée qui est renvoyée : ainsi on évite de charger inutilement le serveur)

      Comme je l’écrivais plus haut, on pourrait imaginer appeler un script… depuis un autre serveur (lui autorisé à hotlinker, du coup) de manière à réduire la charge du serveur d’origine d’une part, et à stocker les images marquées d’autre part.

  22. nico_aveyron a écrit

    C’est intéressant, mais j’ai pas tout pigé. ça viendra^^

  23. Julien Dorol a écrit

    Merci Cédric pour ce post très complet. J’ai installé pictPkocet sur mon blog, surtout par curiosité, et pour prévenir ce problème de bande passante.

    Par contre, concernant le problème du vol de contenu, je ne me fait aucune illusion : c’est absolument incontrôlable de nos jours, (il suffit juste de faire un tour dans nos bibliothèque iTunes pour se rendre compte de l’ampleur du phénomène).

    Ce qui m’ennui dans cette histoire de hotlink (que je découvre grâce à toi), c’est surtout pour la bande passante. Mais le fait qu’un mec me pique une image en 550px ou un morceau de texte pour son blog, ça me passe un peu au dessus tant le préjudice me semble faible (sauf si il y a revente et grosse exploitation commerciale, mais bon avec des images de 500px…) et les recours limités.

  24. lola a écrit

    Bonjour,
    Le code à mettre sur google images pour vous est :
    -site:aube-nature.com inurl:aube-nature.com
    Comment fait-on pour un blog blogspot.com ?
    Quand je tape mon url simple, j’ai 4 images à moi et 80 d’une bloggeuse qui fait du hotlink !
    Merci pour votre aide

    • Cédric G. a écrit

      Bonjour Lola

      Pour un blogspot, par ex. « lola.blogspot.com », tu peux utiliser la syntaxe suivante :
      -site:lola.blogspot.com inurl:lola.blogspot.com

      (ATTENTION à regarder si les images sont hébergés sur ton sous-domaine !!! Ce qui n’est pas gagné sur un blogspot… Sinon point de salut pour repérer les hotlinks : d’où l’intérêt d’avoir un nom de domaine à soi, avec un serveur à soi également !)

  25. lola a écrit

    Bonjour Cédric,
    Ton site est de toute beauté, je comprends que tu protèges tes images.
    Merci pour ta réponse.
    Alors, j’obtiens 17 images de mon blog en mettant site:tatata.blogspot.com
    Avec ta première syntaxe complète = 0
    Avec mon url complète : http://tatata.blogspot.com j’obtiens 146 résultats dont 4 visuels menant à mon blog !….et le reste sont des visuels du blog qui s’est accroché : soit à mes images, soit à mon URL de blog.
    Ce sont ses images menant directement à son url !
    Probablement une nouvelle forme de hotlink.
    Si tu m’envoies un mail, je te transmets l’adresse de mon blog pour que tu puisses voir.
    Je n’ai rien trouvé sur le web à part ta page de protection des images très bien conçue mais le htacces qui semble être la meilleure solution ne marche pas avec blogger…
    Merci !

  26. Raf a écrit

    Ben on en apprend des choses ici dites donc…

    Bon, rien de bien méchant pour ma part, je me suis fait hotlinker 2 images sur un forum étranger 😉 Si ça devait prendre de l’ampleur, je reviendrais faire un tout sur ce tuto, mais je reste un peu frileux à remodifier le .httaccess

    Bonne chasse !

  27. Fab a écrit

    Bonjour,
    Petit encouragement pour vous encourager à continuer de partager vos belles images, et un gros remerciements pour ce tuto.

    Personellement, j’en viens à haïr le système google et toutes les limites qu’ils se permettent de transgresser, il faut bien l’avouer.
    Dernière en date, j’utilise picasa web albums, et je me suis apercu que des albums que j’avais mis en privé sont en fait parfaitement accessible en tapant juste mon nom et prenom dans google. Rien de sensibles ni de honteux, mais juste des images que je n’ai pas envie de partager avec tout le monde.
    Je crains parfois qu’internet ne devienne plus qu’un lieu où l’on se sert plus que l’on ne partage.

  28. Photo 555 a écrit

    Merci pour cet article très intéressant : j’ai justement des problèmes pour paramétrer mon fichier .htacess pour mon site. Avec vos exemples, je vais peut-être enfin y arriver…

  29. sandy a écrit

    Bonjour,
    Grâce à la petite manipulation à faire dans google image, je me suis aperçue qu’un site pornographique a utilisé une de mes images pour amener les gens sans qu’ils le veuillent vers un site pornographique. Il y a redirection à partir d’un lien qui n’est pas le mien. En plus, l’image que l’on m’a volé est très innocente. Rien avoir avec une image indécente. Si vous connaissez la marche à suivre pour l’en empêcher, je suis preneuse.
    En tout cas, merci pour cette article, il m’a rendu bien service.

  30. Fredj a écrit

    Hello,

    comme technique anti vol des images j’ai noté celles là:
    – morceller l’image en plusieurs images, comme un puzzle.
    – charger l’image dans un swf: cela permet d’éviter un enregistrer sous, et il est possible de lui donner accès à un répertoire protégé avec mot de passe et login (via htaccess).

    🙂

  31. snash a écrit

    Bonjour,

    Merci pour cet articles et ses informations.
    Mais il y a aussi les voleurs qui téléchargent les images et les utilisent ailleurs. Pour cela j’utilise Tinyeye.
    C’est grâce a cet outil que j’ai trouvé un de mes photos sur une affiche.

    • Cédric G. a écrit

      Effectivement, TinEye fait parti des outils permettant de retrouver les photos « volées » (pas seulement hotlinkées)

      J’en avais d’ailleurs parlé à plusieurs reprises sur ce blog ; c’est un très bon outil, mais qui ne représente malheureusement « que » 1 à 2% des images du web (estimation)

  32. Arnaud a écrit

    Bonjour Cedric,
    j’ai refait un point complet sur la copie de photo et le hotlink sur mon blog : http://www.blog-visoterra.com/copie-de-photos-hotlinks-que-faire/
    Merci d’avoir mentionné Visohotlink dans ton article fort complet. Ca me donne envie de le rajeunir un peu avec mes dernières trouvailles!

  33. Mattpano a écrit

    Merci pour cette piqure de rappel !

  34. Raf a écrit

    Bonsoir,

    Le script de Cédric ne semblant pas fonctionner dans mon cas, j’y ai effectué la légère modification suivante :

    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !image-nature\.net [NC]
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteRule \.(jpeg|jpg|gif|png)$ – [F]

    En espérant que Google et Google image pourront toujours afficher les images en cash.

    • Raf a écrit

      Rectification du script (.htaccess) :

      […]

      RewriteCond %{HTTP_REFERER} !^http://(.+\.)?image-nature\.net/ [NC]
      RewriteCond %{HTTP_REFERER} !^$
      RewriteCond %{HTTP_REFERER} !google\. [NC]
      RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
      RewriteRule .*\.(png|gif|jpg|jpe|jpeg)$ no-hotlink.png [L]

    • Cédric G. a écrit

      Salut Raf

      Effectivement, selon les hébergeurs il est possible que certains options ne fonctionnent pas (ceci dit, sur ce genre de requête c’est assez étonnant… sauf si tu es chez OVH – oups ça m’a échappé ^_^)

      Ta version est également parfaitement valable, ça fait la même chose mais écrit différemment 😉

      La première version n’affiche… rien, la seconde renvoie vers une image par défaut. Voilà (explication pour nos lecteurs néophytes)

  35. Samuel a écrit

    Cédric merci pour cet article que je découvre ! Je viens de créer un fichier .htaccess qui pointe vers une image bidon.
    Ca marche nickel ! Par contre à chaque fois je dois faire recharger la page pour que la photo qui était en hotlink soit remplacer par la bidon, est-ce normal ?

  36. Silent Bob a écrit

    Bonjour,

    Dans le même esprit que Pictpocket, mais avec une notion de transformation en traffic entrant en plus, je viens de développer un plugin qui peut rendre service à tous ceux qui se font ‘voler’ leurs images : http://wordpress.org/extend/plugins/hotlink2watermark/

  37. Pascal P a écrit

    Bonjour,

    Pour une protection complète j’utilise Crawlprotect, facile à mettre en place et à utiliser, Opensource.
    Je l’utilise pour mon site http://www.fotolib.eu
    Voici le lien du script.

    http://www.crawltrack.net/crawlprotect/

  38. ChrisTais a écrit

    Merci pour ton article. Je viens de découvrir aujourd’hui que je fais face au même phénomène.

    Les 3/4 de l’article c’est du chinois pour moi mais ma foi, il est peut-être temps d’apprendre justement.

  39. JB a écrit

    Bonjour Cédric,

    Merci pour l’article, c’est très bien expliqué par contre:

    pictpocket me trouve des hotlink bizarre car le champ url est vide, et quand j’autorise ou bloc j’ai un RewriteCond sans nom de domaine, juste cela d’écrit : http:///.*$

    pouvez-vous me dire à quoi cela correspond ?

    d’habitude il crée des RewriteCond du genre : http://(.+\.)?toto.blabla/.*$

    merci d’avance pour votre aide.

  40. J.P a écrit

    Merci Cédric

    très utile ton .htaccess pour moi, ça barre la route à mes voleurs en particuliers les forums Forumactifs (une vraie plaie ceux-là)

  41. Joe a écrit

    Bonjour Cédric,

    tout d’abord félicitation pour le blog : c’est vraiment une belle source d’inspiration … Bravo !

    J’ai installé PictPocket et il m’affiche dans la section hotlinks des moteurs de recherche comme google fr ou ch …

    Faut-il les laisser ou les filtrer ? merci d’avance pour ton aide,

    cordialement,

    Joe.

  42. Fab a écrit

    Merci pour ces différentes techniques pour se protéger du hotlink des images, j’ai eu beaucoup de problèmes avec ca et maintenant grâce à votre article, je vais enfin pouvoir lutter contre ce problème ! Il était temps !

  43. Zéfling a écrit

    Pas mal cet article, mais mon problème actuel est carrément la bande passante bouffer les Google Image qui excède largement celle de mon propre site (d’après Goaccess ~75% de la bande passante est du vol Google ou Yahoo, les voleurs autres sont marginaux à côté).

    J’en viens à me demander s’il ne faut pas aussi inclure Google et Yahoo dans les voleurs.

Laisser un commentaire