Feedly volait votre contenu - Voici l'histoire et son code

Feedly volait votre contenu - Voici l'histoire et son code / l'Internet

La semaine dernière, Feedly a présenté un nouveau produit controversé “fonctionnalité” - détournant des liens de fil pour voler le trafic de millions de blogueurs.

La redirection de liens partagés avec Feedly vers la propre vue de l'article sur l'article au lieu de l'article lui-même sur le site d'origine préoccupe les créateurs de contenu d'origine de nombreux blogs. Cela entraîne non seulement une perte de trafic, mais est également trompeur pour ceux qui suivent un blog en particulier.

Voici le récit complet des raisons pour lesquelles les gens sont en colère et comment un blogueur a aidé à redresser la situation. Je m'intéresse également à leur code source pour vous montrer à quel point leurs petites astuces sont sales..

Crédit dû: Le lecteur numérique était la source originale de cette nouvelle - je viens de décider d’enquêter un peu plus loin et de voir exactement ce qu’ils faisaient..

Tout d'abord, la bonne nouvelle

Au moment de la rédaction du présent document, le comportement a été quelque peu corrigé, de sorte que des liens raccourcis Feedly sont effectivement envoyés sur le site de l'expéditeur, mais un examen rapide du code de statut HTTP. Top 10 des sites Web pour les codes d'erreur et dépannage Top 10 des sites Web pour les codes d'erreur Le dépannage de Read More a révélé que la redirection n’était pas effectuée de la même manière qu'au niveau du serveur avec une redirection 301 ou 302 (200, que Feedly envoie, signifie “Oui, nous avons cette page, attendez”; 404 signifie “pas trouvé”; 301 signifie “redirection permanente vers une autre URL; tandis que 302 signifie “redirection temporaire”).

Cela signifiait que la redirection était effectuée en JavaScript, je voulais donc en savoir plus. À l'aide d'un outil d'extraction de page Web en ligne de commande appelé curl, j'ai pu récupérer le code source d'un exemple de lien Feedly vers Techmeme.com avant la redirection (car CURL n'exécutera pas JavaScript) - et il a révélé des informations surprenantes. Voici ce que j'ai trouvé.

(J'ai téléchargé la source complète ici si vous souhaitez jeter un coup d'œil - je ne présente que quelques extraits intéressants ci-dessous)

Certaines personnes s'inquiétaient des conséquences, en termes de référencement, de voir leur contenu volé et republié ailleurs; La bonne nouvelle est que Feedly a correctement réglé le rel =“canonique” balise méta pour indiquer à Google que toutes les valeurs de lien doivent être transmises au site d'origine. Cependant, il est impossible de déterminer si cela a été ajouté après le début des plaintes ou s'il était présent depuis le début..

  

Ils sont décapants

Dans ce qui était probablement une tentative malavisée de dupliquer une fonctionnalité de type Lisibilité 6 Signets qui augmenteront la vitesse et la productivité de votre navigation sur le Web 6 Signets qui augmenteront la vitesse de votre navigation et la productivité Surfer sur le Web Contrairement à vos favoris, ils n'archivent pas d'URL. Les bookmarklets sont plutôt de petites applets Java avec une fonctionnalité en un clic. Il y a des centaines de… Lire la suite, qui réduit la page à l'essentiel, Feedly supprimait tous les boutons de publicité, de suivi et de partage social pouvant avoir été incorporés dans l'élément de flux d'origine. Voici la liste complète des choses à éliminer:

 var visualExcludePatterns = ["feedproxy", "feedburner", "/ ~", "feeds.wordpress.com", "stats.wordpress.com", "googleadservices.com", "feedads", "tweet-this", " fmpub "," - ads "," _ ads "," pheedo "," zemanta "," u.npr.org/iserver","openx.org","slashdot-it","smilies","/ico- "," commindo-media.de "," creatives.commindo-media "," doubleclick.net "," i.techcrunch "," adview "," / feed.gif ",". ads. "," / avw .php”,"wp-digg-this", "feed-injector", "/ plugins /", "tweetmeme.com", "_ icon _" "," / ad - "," share-buttons "," feedsportal.com "," buysellads " "," holstee "," musictapp "," / ad _ "," / button / "," donate.png "," / sponsors / "," googlesyndication.com "," / pagead "," / adx "," assets / feed-fb "," assets / feed-tw "," feedburner.com/~ff","gstatic.com","feedsportal.com "]; 

Sortir un “faire un don” bouton semble particulièrement irritant, pour une raison quelconque.

Ils détournent des liens

Nous arrivons au point le plus grave: non seulement Feedly effaçait-il le contenu de votre site, mais il supprimait tous les boutons sociaux originaux et réécrivait les métadonnées. Cela signifie que lorsque quelqu'un partagerait ultérieurement l'élément, il serait en fait partage du lien Feedly et non du message d'origine. Toute personne cliquant sur ce lien irait directement à Feedly.

Capture d'écran du contenu gratté de TheDigitalReader

Alors quoi, vous pourriez demander? Lorsqu'un message devient viral, le site en question peut en retirer un avantage considérable: il peut générer des consultations de pages, générer des revenus publicitaires et élargir son audience. Feedly était en train de voler cet avantage spécifique au site pour étendre sa propre base d'utilisateurs. Le code Feedly inclut des contrôles pour les appareils mobiles qui dirigeraient les utilisateurs vers la page de l’appstore correspondante.

 action de fonction (où) var actionName = "follow"; var url = "http://feedly.com/#" + encodeURIComponent ("subscription /" + feedInfo.id); if (/iPhone|iPad/i.test (navigator.userAgent)) actionName = "install"; url = "http://itunes.apple.com/us/app/feedly/id396069556";  else if (/android/i.test (navigator.userAgent)) actionName = "install"; url = "marché: // détails? id = com.devhd.feedly";  _gaq.push (['_trackEvent', bucket (), actionName + "." + where, feedInfo.id]); window.setTimeout (function () document.location.href = url;, 20); window.event.cancelBubble = true window.event.stopPropagation (); window.event.preventDefault (); 

Ce n'était pas “juste pour rendre l'article plus facile à voir” - c'était voler du trafic, tout simplement. C'est vraiment pas cool.

Leur premier correctif: une liste d'exclusion codée en dur

Lorsque le lecteur numérique s’est plaint à Feedly pour la première fois, sa réponse a été de recoder le code Javascript pour inclure un liste d'exclusion. Ils ont littéralement ajouté un chèque à chaque lien Feedly pour voir s’il s’agissait d’un élément du lecteur numérique et, le cas échéant, pour contourner le détournement de page..

 var siteExcludePatterns = ["/ TheDigitalReader /"]; fonction shouldExcludeSite (url) 

C’est bien sûr une façon absolument ridicule de le faire - s’ils envisageaient d’ajouter à cette liste au fil du temps et si de plus en plus de blogueurs se plaignaient?

Nate, de The Digital Reader a répondu:

Où parvenez-vous à exiger que je renonce à votre détournement? C'est comme dire que je devrais demander à quelqu'un d'arrêter de me frapper dans le portefeuille. Et pourtant, vous pensez que c'est raisonnable?

Leur deuxième solution: un piratage rapide pour contourner tout le code

Après ce que je ne peux que supposer, un nombre accablant de plaintes a suivi, ils ont ajusté le filtre de piratage comme suit:

 if (kind == "partial" || devraitExcludeSite ("http://www.techmeme.com/131202/p30#a131202p30") || true) document.body.innerHTML = ""; document.location.href = "http://www.techmeme.com/131202/p30#a131202p30"; 

“Partiel” fait référence au contenu gratté en tant que flux complet ou partiel - il est inutile de détourner des flux qui ne publient qu'un extrait après tout. Vraisemblablement, cette fonction a été à l’origine la seule vérification effectuée lors du choix d’envoyer ou non l’utilisateur au site d’origine. Vous pouvez voir le premier correctif après cela, qui appelle la fonction pour vérifier si ce site est dans la liste des sites qui ont été désactivés. mais alors nous voyons leur solution finale en place -

 || vrai.

Si vous avez une expérience en programmation, vous reconnaîtrez le piratage rapide qui dit “le code suivant sera toujours exécuté”, et il est généralement utilisé uniquement dans le débogage. Si l’une de ces 3 conditions est vraie (les deux premières n’importent plus), Feedly redirige instantanément les utilisateurs vers le site d’origine..

Et c'est là où ça se trouve maintenant. Alors qu'avons-nous appris?

En gros, Feedly a cherché à créer une sorte d’expérience de lecture allégée, mais la façon dont ils y sont parvenus - réécrire des liens pour propager leur propre service à travers des partages sociaux ultérieurs était vraiment dégoûtante. Ce n'est pas la seule mauvaise chose que Feedly ait faite récemment non plus - le mois dernier, ils ont commencé à exiger une connexion avec des comptes Google+ (après avoir constaté l'efficacité de la connexion à Google+ pour la section des commentaires de YouTube, maintenant nettoyée, avec la permission de Google+, la section de commentaires de YouTube maintenant. Nettoyé, courtoisie de Google+ Google a nettoyé YouTube avec un nouveau système de commentaires alimenté par Google+: vous verrez désormais les commentaires les plus votés, ceux des personnes de vos cercles Google+ et du propriétaire de la vidéo. devinez), mais cela aussi a été rapidement inversé. La leçon est la suivante: vous voudrez peut-être commencer à chercher un autre lecteur de flux La fin de Google Reader est proche: préparez-vous avec ces lecteurs alternatifs RSS La fin de Google Reader est proche: préparez-vous avec ces lecteurs alternatifs RSS Google Reader est mort. En juillet, le premier service RSS d'Internet est en train de fermer pour toujours, permettant aux utilisateurs de trouver eux-mêmes un remplaçant. Si vous recherchez un équivalent de Google, ce ne sont que… Lisez Plus, à moins que vous n'ayez déjà été convaincu de payer 99 $ pour un compte Pro.

En savoir plus sur: Feed Reader, FeedReader, RSS.