WordPress : un plugin anti-frames

Je sors un peu de la photographie pour mettre un pied dans mon autre monde, celui du développement… Voici donc mon premier plugin WordPress, dédié « simplement » à supprimer les iframes et autres frames, mais en préservant les statistiques et plus particulièrement celles de Google Analytics, l’objectif étant d’éviter tout accès « direct » aux photographies depuis les moteurs de recherche sans afficher la page complète.

Ne plus autoriser le téléchargement direct !

Ceci vient dans la continuité de mes articles pour lutter contre le hotlinking et plus généralement contre le vol de photographies, en proposant une solution simple pour lutter contre l’énervante manie des moteurs de recherche, et notamment Google, de présenter les recherches d’images avec des liens directs vers les fichiers, facilitant de fait le téléchargement de nos chères photographies en zappant plus ou moins la visite sur notre site (en clair : ils facilitent la repompe !)

À CONSULTER ÉGALEMENT : Pour en savoir plus sur la protection des photos

Google Images en action


Google Images en action : le petit lien sous l’image en cadrée permet de la télécharger directement (idem à droite !)

L’idée était donc d’intégrer automatiquement un script permettant de rediriger systématiquement la page, lorsqu’on essaye de l’afficher dans une frame (cadre HTML), comme le font les principaux moteurs de recherche dans les recherches d’images.

Une problématique : préserver les statistiques

Le problème résidant dans l’utilisation d’un script Javascript pour rediriger une page, est que l’on fait « sauter » par la même occasion toutes les statistiques puisque l’on recharge intégralement la page. J’avais sur ma galerie photo nature utilisé un stratagème pour rediriger les pages après le décompte statistiques, vers une adresse spéciale dépourvue de marqueur de statistiques.

Une solution beaucoup plus élégante m’a été donnée par Arnaud, l’auteur de Visohotlink (produit dont j’avais parlé dans mon article sur le hotlink) et qui a écrit un article sur la question, remis au goût du jour. Il donne dans son excellent billet sur le hotlinking, tout un tas d’astuces techniques et plus particulièrement un morceau de script (écrit chez Open Linking), que j’ai simplement réintégré en plugin WordPress 🙂

Installation sur votre site

L’usage de ce plugin (ou du script en direct) nécessite que votre site utilise le langage PHP : c’est une nécessité.

  • Si votre site ne « tourne » pas sous WordPress, je vous invite à vous rendre sur la page d’Open Linking, afin de suivre le mode d’emploi pour la mise en oeuvre du script (MAJ 2021 : le script n’existe plus !)
  • Si votre site « tourne » sous WordPress : il vous suffit de télécharger le plugin ci-dessous, et de l’installer sur votre WordPress via la page Extensions / Ajouter dans votre back-office. Une fois cela fait, rendez-vous dans la page Extensions côté administration pour activer le plugin. C’est tout !

59 réflexions sur “WordPress : un plugin anti-frames”

  1. Avatar de Janolapin
    Janolapin

    excellent, Cédric !
    Merçi

    Répondre
  2. Avatar de pyrros
    pyrros

    Super, je teste et je fais un retour dans quelques jours 😉

    Répondre
  3. Avatar de Vincent Montibus
    Vincent Montibus

    Merci Cédric !

    Répondre
  4. Avatar de Julien Dorol
    Julien Dorol

    Ca à l’air sympa ce petit plugins, d’autant plus que beaucoup de trafic viens de google image, et que leur frame est en fait une plaie, même pour ceux qui ne veulent pas piquer les images.
    Moi ça m’agace de cliquer sur le bouton « fermer », surtout qu’un fois fermé, on retombe quasiment jamais au bon endroit pour lire l’article qu’illustre la photo trouvée. Cet outils est une plaie.
    Tiens, d’ailleurs, je viens de voir un truc similaire sur un site de fond d’écran où la frame s’affiche et disparaît instantanément .
    Donc je m’en vais installer ce plugins de ce pas.
    Et le SEO justement, il n’y a pas de « risque »? (question con, je sais 🙂 )
    Merci Cédric

    Répondre
  5. Avatar de Julien Dorol
    Julien Dorol

    Installé, ça vire parfaitement cette foutu Frame
    Nickel
    je ferai un petit post rapide avec le lien sur mon blog
    merci 😉

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Merci 🙂
      Pour répondre à ta question : non, aucune incidence SEO bien entendu. Et de vrais chiffres de pages vues désormais !

      Répondre
      1. Avatar de Julien Dorol
        Julien Dorol

        Relayé sur le blog 😉

        Répondre
  6. Avatar de philippe
    philippe

    Cool merci, déjà installé , faut que je fasse pareil coté site (pas sous WP)

    Répondre
  7. Avatar de Ze Courlis
    Ze Courlis

    Je vais m’empresser de tester ce plugin, sauf que je suis en 2.7, crois-tu que cela va fonctionner ?

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Sans aucun problème ! Je l’ai testé sur un vieux WP en 2.6 😉

      Répondre
      1. Avatar de Marc
        Marc

        Parfait pour moi ça! je vais le tester ce soir 😉
        Merci pour ce boulot!

        Répondre
  8. Avatar de Killim
    Killim

    Pareil, je teste de ce pas!

    Répondre
  9. Avatar de Cédric G.
    Cédric G.

    Sinon j’aimerais bien l’ajouter sur le référentiel WordPress officiel, mais la méthodologie est terriblement complexe à mes yeux (SVN, tout ça…)
    Z’auraient pas pu faire un truc plus simple ???
    J’ai déjà utilisé un SVN, mais bon franchement ça me gave.
    Sinon j’ai quelques idées d’amélioration 🙂

    Répondre
  10. Avatar de Stéphane
    Stéphane

    Merci beaucoup Cédric même si mon site reste confidentiel, j’installe ce plug-in. Merci pour le partage.

    Répondre
  11. Avatar de Arnaud
    Arnaud

    Merci d’avoir mentionné mon article Cédric.

    Répondre
    1. Avatar de Yvan
      Yvan

      Moi aussi, exactement se que je cherchais

      Répondre
  12. Avatar de Bertrand
    Bertrand

    Merci Cédric
    Un bon plug-in qui est déjà installé et opérationnel

    Répondre
  13. Avatar de pyrros
    pyrros

    En testant et ça marche nickel (quand mon hébergeur ne plante pas 😉 ) j’ai découvert que Google image lit les EXIF et les IPTC.
    Par contre j’ai pas l’impression que cela change quelque chose pour le résultat de la recherche
    ———————
    Perso je pense qu’il faut que tu inscrives ton extension sur « référentiel WordPress officiel » car en plus de lui donner plus de visibilité ça nous permettra de voir les mise à jour.
    Le seul petit bug que j’ai trouvé c’est lorsque je clique (dans l’administration des extensions) sur : « Aller sur le site de l’extension » ça me donne une erreur : « La page n’est pas redirigée correctement »

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Merci pour ton retour 🙂
      Pourquoi dis-tu que Google lit les EXIF et IPTC ? Je mène un test depuis… 2007 (!) concernant les IPTC, et la seule chose que j’ai découvert, c’est qu’une image peut être référencée par la légende IPTC, mais seulement si elle est dans une galerie Picasa 🙂
      Mais ça m’intéresse !
      Je vais voir pour intégrer l’extension sur le référentiel WordPress. J’ai quelques idées d’amélioration avec des options orientées « protection des images » (genre une option permettant d’inhiber le clic droit uniquement sur les images, ou d’afficher une boîte de dialogue, etc.)
      Concernant la redirection, c’est un problème lié à WordPress, ça arrive parfois (rarement).

      Répondre
      1. Avatar de pyrros
        pyrros

        dans google image quand je n’ai pas ton extension activée je vois dans la colonne de droite les EXIF et IPTC des photos qui les ont encore
        dans la forme ça ressemble a ce que propose flickr
        Pour le moment mes images sont toujours référencées en fonction du texte proche de celles ci et de leur légende lorsqu’elle est visible. le nom du fichier joue un rôle infime

        Répondre
        1. Avatar de Cédric G.
          Cédric G.

          Ahhh oui lol
          J’utilise Google Images tous les jours et je n’avais jamais fait gaffe 😀
          (faut dire que peu d’images comportent les IPTC…)

          Répondre
          1. Avatar de pyrros
            pyrros

            pareil, c’est a m attardant un peu sur cette barre latérale que j’ai vu ces informations
            en recherchant l’effet que le Plugin WordPress : anti-frames « SEO friendly » ! se comporte avec mes photos qui contiennent les IPTC et les EXIF…

  14. Avatar de Borax
    Borax

    Bonne idée ce plugin. Fonctionne t’il de la même manière intégré dans le répertoire plugin de zenphoto ? J’imagine avec quelques adaptations ?

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Je ne connais pas le fonctionnement de ZenPhoto, mais le bout de code qui est important doit en principe fonctionner sur n’importe quel CMS, quand il est bien positionné 🙂

      Répondre
  15. Avatar de Fabien
    Fabien

    Plugin essayé, plugin adopté !
    Merci pour le partage, j’espérais un tel plugin depuis longtemps.
    Seul (petit) bémol, la frame s’affiche pendant 4-5 secondes avant de rediriger vers mon site, ce qui laisse du temps à l’internaute pour récupérer la photo sans passer par mon site.
    Je pense que cela vient de la « lenteur » de mon hébergeur et non du plugin.
    Penses-tu qu’il soit possible de réduire ce temps ou de diriger directement vers le site sans l’affichage de la frame ?

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Bonsoir Fabien
      Une solution est d’intégrer le code directement tout en haut de la page, juste sous la balise HTML ; cela permet de gagner (un peu) de temps et évite que d’autres scripts JS soient exécutés avant celui-ci…

      Répondre
      1. Avatar de Fabien
        Fabien

        Merci pour l’info Cédric. Je vais voir ce que je peux faire avec mes connaissances informatiques…

        Répondre
  16. Avatar de Seb F.
    Seb F.

    Génial, merci beaucoup Cédric !
    Cela fonctionne parfaitement 🙂

    Répondre
  17. Avatar de Leschiens
    Leschiens

    C’est un super plugin !
    Je l’ai essayé et les iframes sont toutes supprimées.
    Et c’est vrai qu’on gagne un peu de pages vues 😉
    Pas de pseudos SEO MERCI

    Répondre
  18. Avatar de ze courlis
    ze courlis

    pour ma part, mon tableau wordpress ne voit pas le plugin bien qu’il soit dans le bon répertoire 🙁

    Répondre
    1. Avatar de Ze courlis
      Ze courlis

      bon, je l’ai enlevé puis remis, et cette fois, ça a l’air de fonctionner, merci Cédric !

      Répondre
  19. Avatar de Ducky
    Ducky

    Sympa cet article et pour répondre à Borax, il s’intègre parfaitement au plugin zenphoto.

    Répondre
  20. Avatar de Cédric G.
    Cédric G.

    Comme indiqué en bas de l’article, Google a réalisé ces derniers jours une mise à jour dans ses scripts de Google Images, qui fait que les anti-frames ne fonctionnent plus (comme n’importe quel javascript apparemment) sous Google Chrome ou Safari 🙁
    Je trouve ça totalement… irresponsable !

    Répondre
  21. Avatar de pyrros
    pyrros

    apres un gros mois d’utilisation, je constate sur les stat de mon site une augmentation réelle du nombre de visites à peu égale à 25% ceux qui est significatif sur un site comme le mien …
    😉
    dans la journée j’en parlerai sur mon blog …

    Répondre
  22. Avatar de Spipouh
    Spipouh

    excellent travail pour nous préserver des voleurs d’images

    Répondre
  23. Avatar de Heaven
    Heaven

    Bonjour,
    Merci pour cet excellent plugin ..
    Je recherchais ceci depuis lgt!
    Bon travail et merci à toi

    Répondre
  24. Avatar de pierre
    pierre

    merci pour ce plugin je vais l’utiliser sur mon blog worldpress

    Répondre
  25. Avatar de Fred
    Fred

    je viens de l’installer aussi sur la partie de mon site sous wordpress.
    Merci

    Répondre
  26. Avatar de microtom
    microtom

    Très intéressant. Merci et adopté 😉

    Répondre
  27. Avatar de Seb F.
    Seb F.

    Hello Cédric,
    J’ai installé le plugin il y a plusieurs semaines ; il semble marcher sans problème.
    Néanmoins, j’ai constaté depuis début décembre (en WP 2.2.X, 3.3 et 3.3.1), que j’avais un log d’erreur créé à la racine indiquant qu’il y avait une erreur à la ligne 73 du fichier php.
    Par contre, il (le log) parle d’une fonction html.entities que je ne retrouve pas …. à la ligne 73.
    As-tu également le même log ?
    Comment pourrais-je corriger cette erreur ? Mes compétences web sont dépassées à ce niveau 🙁

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Salut Seb
      Je vais regarder ça 🙂

      Répondre
    2. Avatar de Cédric G.
      Cédric G.

      Alors c’est étrange car je n’ai personnellement aucune erreur ???
      La fonction htmlentities est un classique en PHP, et j’utilise perso le code du plugin « en dur » sur le blog où nous discutons, donc ça fonctionne, indéniablement 🙂 )

      Répondre
      1. Avatar de Seb F.
        Seb F.

        Argh, bon ben il ne me reste plus qu’à aller mettre les doigts de le cambouis pour comprendre ce qu’il se passe.
        Je te fais un mail ce soir avec les détails détaillés (parce qu’à distance, au boulot, sans accès au log en question, c’est pas facile !!!)

        Répondre
  28. Avatar de Jerome Dancette
    Jerome Dancette

    Dommage ça m’intéresse aussi 🙂

    Répondre
  29. Avatar de Jules
    Jules

    Je ne connaissais pas du tout ce plugin WP qui permet de protéger les images de son site contre le vol via Google.
    C’est clair qu’avec de belles photos professionnelles comme les tiennes, je ferais super attention héhé 🙂

    Répondre
  30. Avatar de mathieujava
    mathieujava

    je viens d’installer le plugin sur mon site consacré à l’Indonésie et cela fonctionne au top.
    Je me suis permis de l’améliorer en mettant un « # » à la place de « ? » avant l’utm
    echo « var redirecturl=location.href+\ »#utm_source= ».
    et en ajoutant cette ligne dans mon script analytics
    _gaq.push([‘_setAllowAnchor’, true]);
    pour le SEO

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Ahhh pas bête !
      Par contre cela demande de modifier le code Analytics… Mais j’y avais pas pensé !

      Répondre
  31. Avatar de Seb F.
    Seb F.

    Je rebondis sur le commentaire de mathieujava (merci d’ailleurs) pour apporter quelques éléments complémentaires après quelques mois de tests chez moi :
    1 – quand on fait une recherche images dans google, si on est connecté à son compte google, hé bien la variable « q » contenant les mots clés de recherche n’est pas intégré dans le lien html (d’où de nombreux « undefined » dans mon google analytics)
    J’ai mis un moment avant de la comprendre celle-ci 😉
    2 – dans le registre modifications dans le plugin (et je pense que c’est lié à mon problème plus haut), j’ai passé les « UTF-8 » en « ISO-8859-1 » pour les fonctions htmlentities, ce qui me permet de voir les mots-clés avec accents ou autres subtilités 😉
    #my2cents

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      C’est le problème du mode HTTPS lancé par Google il y a quelques semaines, qui « provoque » pour tous les visiteurs connectés à leur compte Google la non transmission des mots-clés utilisés (le fameux « not provided » pour les recherches texturelles)
      Apparemment on a la même sauce dans les images 😉
      Concernant l’encodage, mes sites étant tous en UTF-8 je n’ai jamais eu de problèmes…

      Répondre
      1. Avatar de Seb F.
        Seb F.

        Vi c’est juste, ce n’est pas limité à la recherche image mais bien à toutes les recherches 🙁
        Si je ne dis pas de bêtises (et si j’ai correctement testé tout à l’heure), le fait d’utiliser UTF-8 dans la fonction htmlentities ne me permet pas de récupérer les mots clés quand il y a du caractère avec accent ou autre caractère spécial (genre &)
        En passant la fonction avec l’encodage ISO, j’ai cette fois le « term » non nul avec un mot clé comme sébastien
        (si je suis pas clair, faut le dire)

        Répondre
  32. Avatar de Seb F.
    Seb F.

    Edit : par acquis de conscience j’ai re-testé, et en fait non aucun impact.
    Milles excuses pour le gros troll bien poilu (à supprimer d’ailleurs si tu le souhaites)

    Répondre
  33. Avatar de Rémi
    Rémi

    Merci Cédric pour ce plugin !

    Répondre
  34. Avatar de Isaza
    Isaza

    Merci merci
    Isabelle

    Répondre
  35. Avatar de Valentin
    Valentin

    Nul besoin de plugin je pense !
    Un simple code dans l’en-tête suffit non ?
    J’avais également fait un article sur cette astuces, ça permet de récupérer une dizaine visiteurs par jours via Google Images !

    Répondre
  36. Avatar de Lobwick
    Lobwick

    Merci à toi, je viens de me faire voler des photos sur Facebook (je vais m’empresser de faire de la sécurité).
    Merci pour ton plugin bien utile bien que mon faible niveau en photos n’intéresse pas grand monde.

    Répondre
  37. Avatar de Clément
    Clément

    Merci, j’ai testé sur un site WordPress, impécable.
    Sinon, pour mon site, qui lui est en html, peut-on avoir un genre de code qui aurait cette fonction ?
    Merci encore.

    Répondre
  38. Avatar de Apparence
    Apparence

    Bonjour le plugin fonctionne t »il pour wordpress 3.7 ?
    Merci à vous
    Cordialement
    Olivier

    Répondre
    1. Avatar de Cédric G.
      Cédric G.

      Bonjour
      Oui sans problème. Cependant il existe aujourd’hui un nouveau plugin qui remplit cette fonction et beaucoup d’autres encore : WP-Picshield (By Rev)
      Je vous le conseille !

      Répondre
  39. Avatar de Julien Dorol
    Julien Dorol

    Nul besoin de plugin je pense !
    Un simple code dans l’en-tête suffit non ?
    J’avais également fait un article sur cette astuces, ça permet de récupérer une dizaine visiteurs par jours via Google Images !

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut