Feedly stal je inhoud - hier is het verhaal en hun code

Vorige week introduceerde Feedly een controversiële nieuwe functie - koppelingen van feeds koppelen. Hier is het volledige verhaal van waarom mensen boos zijn en hoe één blogger heeft geholpen om de situatie recht te zetten.

Vorige week introduceerde Feedly een controversiële nieuwe functie - koppelingen van feeds koppelen.  Hier is het volledige verhaal van waarom mensen boos zijn en hoe één blogger heeft geholpen om de situatie recht te zetten.
Advertentie

Vorige week introduceerde Feedly een controversiële nieuwe "feature" - het fokken van feedlinks om het verkeer van miljoenen bloggers te stelen .

Het omleiden van gedeelde links met Feedly naar Feedly's eigen mening over het artikel in plaats van het artikel zelf op de oorspronkelijke site is een zorg voor originele makers van inhoud op veel blogs. Het resulteert niet alleen in verlies van verkeer, maar is ook misleidend voor degenen die een bepaalde blog volgen.

Hier is het volledige verhaal van waarom mensen boos zijn en hoe één blogger heeft geholpen om de situatie recht te zetten. Ik verdiep me ook in hun broncode om je te laten zien hoe vies hun kleine trucjes zijn.

Krediet: de digitale lezer was de originele bron voor dit nieuws - ik besloot om een ​​beetje verder te onderzoeken en precies te zien wat ze van plan waren.

Ten eerste, het goede nieuws

Op het moment van schrijven is het gedrag enigszins gecorrigeerd, zodat verkorte Feedly-links inderdaad naar de site van de initiators worden verzonden, maar een snel onderzoek van de HTTP-statuscode Top 10-websites voor foutcodes en probleemoplossing Top 10 websites voor foutcodes en Problemen oplossen Meer informatie onthulde dat de omleiding niet werd gedaan op de typische manier op serverniveau met een 301- of 302-omleiding (200, die Feedly verzendt, betekent "ja, we hebben die pagina, wacht even"; 404 betekent " niet gevonden "; 301 betekent" permanent doorverwijzen naar een andere URL, terwijl 302 "tijdelijke omleiding" betekent) .

Dit betekende dat de omleiding werd uitgevoerd in JavaScript, dus ik wilde meer weten. Met behulp van een hulpprogramma voor het ophalen van webpagina's, curl genaamd, kon ik de broncode van een voorbeeld-Feedly-link naar Techmeme.com pakken voordat de omleiding plaatsvond (omdat CURL geen JavaScript uitvoert) - en het onthulde een aantal verrassende weetjes. Dit is wat ik heb gevonden.

(Ik heb hier de volledige bron geüpload als je een kijkje wilt nemen. Ik heb alleen een aantal interessante fragmenten hieronder)

Sommige mensen maakten zich zorgen over de SEO-implicaties van het feit dat hun inhoud in feite werd gestolen en elders opnieuw werd gepubliceerd; het goede nieuws is dat Feedly correct de rel = "canonieke" metatag heeft ingesteld om Google te informeren dat alle koppelingswaarden moeten worden doorgegeven aan de oorspronkelijke site. Het is echter onmogelijk om na te gaan of dit is toegevoegd nadat klachten begonnen of vanaf het begin aanwezig waren.

Het zijn stripadvertenties

In wat waarschijnlijk een misplaatste poging was om een ​​leesbaarheidstype-functionaliteit te dupliceren 6 Bladwijzers die uw websurfen verbeteren Snelheid en productiviteit verhogen 6 Bookmarklets die uw internetten stimuleren om te surfen Snelheid en productiviteit Bookmarkables zijn ongunstige kleine helpers die in de bladwijzerbalk van uw browser zitten. In tegenstelling tot uw normale bladwijzers, archiveren ze geen URL, maar bookmarklets zijn kleine Java-applets met een enkele klik-functionaliteit. Er zijn honderden ... Lees meer, dat een pagina ontdoet van zijn belangrijkste benodigdheden, Feedly was bezig met het verwijderen van alle knoppen voor het adverteren, bijhouden en delen van sociale media die mogelijk zijn ingesloten in het oorspronkelijke feeditem. Hier is de volledige lijst met dingen die eruit worden gehaald:

 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"]; 

Het is om een ​​of andere reden erg vervelend om een ​​knop "doneren" te selecteren.

Ze zijn kapingen

Hier komen we op het meest serieuze punt, want niet alleen waren Feedly de inhoud van je site aan het schrapen, ze ontdeden ook alle originele sociale knoppen en herschreven de metadata. Dit betekent dat wanneer iemand het item vervolgens deelt, ze in feite de Feedly-link delen en niet het oorspronkelijke bericht . Iedereen die op die link klikt, gaat meteen naar Feedly.

Schermafbeelding van geschraapte inhoud van TheDigitalReader
Schermafbeelding van geschraapte inhoud van TheDigitalReader

Dus wat, vraag je je misschien af? Wanneer een bericht viraal wordt, kan dit van groot voordeel zijn voor de betreffende site: paginaweergaven en advertentie-inkomsten verhogen en hun doelgroep uitbreiden. Feedly was ronduit het stelen van dat specifieke voordeel weg van de site om zijn eigen gebruikersbestand uit te breiden. De Feedly-code bevat controles voor mobiele apparaten die de gebruikers naar de relevante appstore-pagina zouden leiden.

 function action( where ) { 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 = "market://details?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(); } 

Het was niet "alleen maar het artikel gemakkelijker te bekijken" - het was verkeer stelen, eenvoudig en duidelijk. Dat is echt niet cool.

Hun eerste fix: een lijst met gecodeerde hardcodes

Toen The Digital Reader voor het eerst klaagde bij Feedly, was hun reactie om het Javascript opnieuw te coderen om een uitsluitingslijst op te nemen . Ze voegden letterlijk een vinkje toe aan elke Feedly-link om te zien of het een item van The Digital Reader was en, zo ja, om de pagina-kaping te omzeilen.

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

Dit is natuurlijk een absoluut belachelijke manier om dit te doen - waren ze van plan om aan die lijst toe te voegen naarmate de tijd verstreek en meer bloggers klaagden?

Nate, van The Digital Reader reageerde:

waar ga je heen om te eisen dat ik opteer van je kaping? Het is hetzelfde als zeggen dat ik iemand zou moeten vragen om te stoppen met me in de portemonnee te slaan. En toch denk je dat dat redelijk is?

Hun tweede fix: een snelle hack om alle code te omzeilen

Na wat ik alleen maar kan aannemen was het overweldigende aantal klachten dat volgde, hebben ze het kapingsfilter als volgt aangepast:

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

'Gedeeltelijk' verwijst naar de inhoud die wordt weggeschraapt als een volledige of gedeeltelijke feed. Het heeft geen zin om feeds te kapen die toch maar een fragment publiceren. Vermoedelijk begon deze functie als de enige controle die plaatsvond bij het kiezen of de gebruiker naar de oorspronkelijke site moest worden gestuurd of niet. U kunt daarna de eerste fix zien, die de functie oproept om te controleren of deze site op de lijst staat van sites die zich hebben afgemeld; maar dan zien we hun definitieve oplossing -

 || true. 

Als je programmeerervaring hebt, herken je de snelle hack die zegt dat "de volgende code altijd zal worden uitgevoerd", en deze wordt meestal alleen gebruikt bij foutopsporing. Als een van deze drie voorwaarden waar is (de eerste twee doen er niet langer toe), leidt Feedly de gebruikers direct door naar de oorspronkelijke site.

En dat is waar het nu staat. Dus wat hebben we geleerd?

Feitelijk ging Feedly over het creëren van een soort afgeslankte leeservaring, maar de manier waarop ze het deden - het herschrijven van links om hun eigen service te verspreiden via de daaropvolgende sociale aandelen was behoorlijk walgelijk walgelijk. Dit is niet de enige slechte zet die Feedly onlangs heeft gemaakt - vorige maand begonnen ze inloggen met Google+ accounts (gezien hoe goed Google+ login werkt voor YouTube YouTube's sectie Reacties nu opgeschoond, met dank aan Google+ YouTube's sectie Opmerkingen nu Opgeschoond, met dank aan Google+ Google heeft YouTube opgeschoond met een nieuw door Google+ aangedreven reactiesysteem. Je ziet nu de meest up-reviewed reacties, die van mensen in je Google+ kringen en van de eigenaar van de video. Lees Meer, I raden), maar ook dat werd snel teruggedraaid. De les is - misschien wilt u beginnen met het vinden van een alternatieve feedreader? Google Reader's End Is Nigh: Bereid u voor met deze alternatieve RSS-lezers Google Reader's End is Nigh: Bereid u voor met deze alternatieve RSS-lezers Google Reader is dood. In juli is de belangrijkste RSS-service van het internet voor altijd afgesloten, waardoor gebruikers zelf een vervanging kunnen vinden. Als u op zoek bent naar een equivalent van Google, zijn dit gewoon ... Lees meer, tenzij u al gedwongen bent om $ 99 te betalen voor een Pro-account.

In this article