Feedly stal ditt innehåll - här är historien och deras kod

I förra veckan rullade Feedly ut en kontroversiell ny funktion - kapning av foderlänkar. Här är den fullständiga historien om varför människor är arg och hur en bloggare hjälpte till att rätta till situationen.

I förra veckan rullade Feedly ut en kontroversiell ny funktion - kapning av foderlänkar.  Här är den fullständiga historien om varför människor är arg och hur en bloggare hjälpte till att rätta till situationen.
Annons

I förra veckan rullade Feedly ut en kontroversiell ny "funktion" - kapning av foderlänkar för att stjäla trafik från miljontals bloggare .

Omdirigering av delade länkar med Feedly till Feedlys egen syn på artikeln istället för själva artikeln på den ursprungliga webbplatsen är ett bekymmer för originalinnehållare på många bloggar. Det resulterar inte bara i förlust av trafik, men är också vilseledande för dem som följer en viss blogg.

Här är den fullständiga historien om varför människor är arg och hur en bloggare hjälpte till att rätta till situationen. Jag dyker också in i källkoden för att visa dig hur smutsiga deras lilla trick är.

Förfallotillskott: Den digitala läsaren var den ursprungliga källan till den här nyheten - jag bestämde mig för att undersöka lite längre och se exakt vad de var för.

Först, det goda nyheterna

Vid skrivning har beteendet blivit något korrigerat så att förkortade Feedly-länkar skickas faktiskt till upphovsmannens webbplats, men en snabb undersökning av HTTP-statuskoden Topp 10 webbplatser för felkoder och felsökning Top 10 webbplatser för felkoder & Felsökning Läs mer avslöjade att omdirigeringen inte gjordes på den typiska servernivå med en 301 eller 302 omdirigering (200, vilket Feedly skickar betyder "yep, vi har den sidan, fortsätt"; 404 betyder " inte hittat "; 301 betyder" permanent omdirigering till en annan URL, medan 302 betyder "tillfällig omdirigering") .

Detta innebar att omdirigeringen utfördes i JavaScript, så jag ville veta mer. Med hjälp av en kommandorads webbsida som hämtade verktyget kallas curl kunde jag ta tag i källkoden för ett prov Feedly länk till Techmeme.com innan omdirigeringen inträffade (eftersom CURL inte kör JavaScript) - och det avslöjade några överraskande diskussioner. Här är vad jag hittade.

(Jag har laddat upp hela källan här om du vill ta en titt - jag har bara några intressanta utdrag nedan)

Vissa människor var oroliga för SEO-konsekvenserna av att i princip ha sitt innehåll stulet och åter publiceras på annat håll; Den goda nyheten är att Feedly korrekt anger rel = "canonical" metataggen för att instruera Google att alla länkvärden ska skickas till den ursprungliga webbplatsen. Det är emellertid omöjligt att fastställa om detta tillsattes efter att klagomål började eller var närvarande från början.

De är Stripping Ads

I det som förmodligen var ett felaktigt försök att duplicera en läsbarhetstypfunktionalitet 6 bokmärken som kommer att öka din surfningshastighet och produktivitet 6 webbläsare som kommer att öka din webbsurfning och produktivitet Bookmarklets är omedvetna småhjälpare som sitter i webbläsarens bokmärkesfält. Till skillnad från dina vanliga bokmärken arkiverar de inte en webbadress, snarare bokmärken är små Java-appletter med enklickfunktion. Det finns hundratals ... Läs mer, som remsor en sida ner till dess kärnkrav, Feedly tog bort alla reklam-, spårnings- och sociala delknappar som kan ha varit inbäddade i originalmatningsobjektet. Här är den fullständiga listan över saker som strippas ut:

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

Att ta ut en "donate" -knapp verkar särskilt galande, av någon anledning.

De är kapningslänkar

Här kommer vi till den allvarligaste punkten, för inte bara Feedly skrapade innehållet från din webbplats, de tog sedan bort några ursprungliga sociala knappar och skrev om metadata. Det innebär att när någon senare delade objektet skulle de faktiskt dela Feedly-länken och inte den ursprungliga inlägget . Den som klickar på den länken går direkt till Feedly.

Skärmdump av skrapat innehåll från TheDigitalReader
Skärmdump av skrapat innehåll från TheDigitalReader

Så vad kanske du frågar? När ett inlägg går viralt kan det vara till stor nytta för webbplatsen i fråga - höja sidvisningar och annonsintäkter och utöka deras publik. Feedly var ständigt att stjäla den specifika fördelen bort från webbplatsen för att utöka sin egen användarbas. Feedly-koden inkluderade kontroller för mobila enheter som skulle leda användarna till den relevanta appstore-sidan.

 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(); } 

Det var inte "bara att göra artikeln enklare att se" - det stal trafiken, ren och enkel. Det är verkligen inte coolt.

Deras första fix: En hårdkodad uteslutningslista

När Digital Reader först klagade till Feedly, var deras svar att omkoda Javascript för att inkludera en lista över uteslutningar . De lade bokstavligen en check till varje Feedly-länk för att se om det var ett objekt från Digital Reader, och om så skulle gå förbi sidan kapning.

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

Det här är förstås en helt löjligt sätt att göra detta - var de planerade att lägga till den listan som tiden gick och fler bloggare klagade?

Nate, från Digital Reader svarade:

var börjar du kräva att jag väljer bort din kapning? Det är som att säga att jag borde behöva be någon att sluta slå mig i ansiktsplånboken. Och ändå tycker du att det är rimligt?

Deras andra fix: En snabb hack för att byta alla koden

Efter det jag bara kan anta var överväldigande antal klagomål som följde, justerade de kapningsfiltret enligt följande:

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

"Delvis" avser att det skrapade innehållet är en hel eller delvis matning - det finns ingen mening i kapningsfeeds som bara publicerar ett utdrag trots allt. Förmodligen började denna funktion som den enda kontrollen som inträffade när man valde huruvida man skulle skicka användaren till den ursprungliga webbplatsen eller inte. Du kan se den första åtgärden efter det, som kallar funktionen för att kontrollera om den här webbplatsen finns på listan över webbplatser som har valt bort. men då ser vi deras slutliga fixa på plats -

 || true. 

Om du har någon programmeringserfarenhet kommer du att känna igen det snabba hack som säger "följande kod kommer alltid att köras" och brukar vanligtvis endast användas vid felsökning. Om någon av dessa 3 villkor är sanna (de två första inte längre är viktiga), omdirigerar Feedly användarna direkt till den ursprungliga webbplatsen.

Och det är där det står nu. Så vad har vi lärt oss?

I grund och botten gick Feedly om att skapa en sorts nedsläckt läsupplevelse, men hur de gick om det - omskrivning av länkar för att sprida sin egen tjänst genom efterföljande sociala aktier var ganska förbannad motbjudande. Detta är inte det enda dåliga flyget Feedly har gjort nyligen heller - förra månaden började de behöva logga in med Google+ konton (har sett hur bra Google+ inloggning fungerar för YouTube YouTubes kommentaravsnitt nu rengjorts, heder av Google+ YouTubes kommentarer avsnitt nu Renat upp, Heder av Google+ Google har rengjort YouTube med ett nytt kommandosystem för Google+ drivrutiner. Nu ser du de mest uppdelade kommentarerna, de från personer i dina Google+ cirklar och från ägaren till videon. Läs mer, jag gissa), men det var också snabbt tillbaka. Lektionen är - du kanske vill börja hitta en alternativ feedreader Google Reader's End är nära: Förbered dig på dessa alternativa RSS-läsare Google Reader's End är nära: Förbered dig på dessa alternativa RSS-läsare Google Reader är död. I juli stänger Internetens främsta RSS-tjänst för alltid, vilket gör att användarna kan hitta en ersättare på egen hand. Om du letar efter ett ekvivalent med Google så är det bara ... Läs mer, om du inte redan hade suckered att betala $ 99 för ett Pro-konto.

In this article