Špijuni su među nama – third-party tracking skriven u WordPress pluginu
Ovaj tekst je svojevrstan nastavak prije nekoliko mjeseci objavljenih WordPress.com Stats plugin third-party tracking i 5 stvari za siguran Internet – 1. dio. U njima sam opisao šta je to tracking i zašto se protiv njega treba boriti svim raspoloživim sredstvima. Još sam dužan opisati kako se konkretno boriti, ali doći ćemo i do toga. Sada se želim pozabaviti nečim prečim.
Blog mi je hobi, igračka takoreći. Hrčkovite sam naravi i volim na njega nabacati svakakvih dodataka kojima me bogati WordPressov ekosistem svakodnevno mami. S vremena na vrijeme zavrtim WebPagetest i provjerim kako se moj blog ponaša u praksi, koliko je brz i postoje li problemi koje možda ja kao administrator ne primjećujem. Provjerim brzinu učitavanja (brzina učitavanja stranice utječe na rangiranje na tražilicama, a posljedično i na naš bhBlog rejting) i tako dobijem predstavu šta možda treba optimizirati (npr. ispada da bi trebalo smanjiti veličinu slike koja služi kao logo bloga), ali provjerim i šta se uopće učitava. Kao što se iz priloženog može vidjeti, s razlogom.
Tumačenje priložene slike (kliknite na nju za veću verziju) koja predstavlja rezultate analize WebPagetesta i nije neka nauka. Radi se o tzv. vodopadnom grafu resursa koje web browser redom učitava (i potom procesira/prikazuje – primijetite da se dosta toga obavlja paralelno) prilikom posjete www.copypaste.ba. Lako je vidljivo koliko je vremena potrebno da se svaki od resursa učita. Što je ukupno vrijeme učitavanja manje – posjetitelji i Google su sretniji, navratit će opet, a to je u konačnici smisao web stranice – posjete, zar ne? Npr. sa priložene slike je vidljivo da se logo bloga (NC-logo2.jpg) učitava cijele dvije i pol sekunde, što je puno previše.
No nije to povod za pisanje ovog posta (mada je optimizacija websitea svakako poželjan potez). Pogledajmo malo popis stvari koje se učitavaju: sve sa copypaste.ba je, dakako, dio moje stranice. google-analytics je, kao što mu i samo ime kaže, Google Analytics. stats.wordpress.com je WordPress.com statistički alat. connect.facebook.net i prateća šuma fbcdn.net resursa su nužno zlo zvano facebook (kakav je to site ako nema ‘Like’ dugme?). apis.google.com i gstatic resursi pripadaju Google+ verziji društvene pošasti.
gravatar.com skripte pripadaju novom hepeku koji se distribuira uz Automatticov plugin Jetpac (WordPress.com Stats se od sada može dobiti samo uz Jetpac), no to i dalje ne objašnjava prisustvo par datoteka. Otkud na mom blogu tabpress social tracking i quantserve!? Ja ih (bar svjesno) nisam stavio.
Gamad
Za Quantcast (quantserve im je valjda ime servera) znam od ranije, o ovom problemu sam već blogao (WordPress.com Stats plugin third-party tracking); tokom održavanja bloga prije nekoliko dana isključivao sam pluginove, izgleda da sam zaboravio uključiti DoNotTrack koji vrlo efektivno rješava problem. To nas ostavlja s neidentificiranim tabpress social trackingom.
NAPOMENA 01.12.2011.: Novije verzije Automatticovog JetPac WordPress plugina koji sadrži WordPress.com Stats koriste naprednije metode uključivanja Quantcastovog tracking koda kojeg stara verzija futttinog DoNotTrack plugina ne onesposobljava. futtta je objavio novu verziju koja radi, stoga ukoliko koristite ovaj plugin ne zaboravite ga ažurirati (mora se raditi ručno): detaljnije o ovom čitajte na futttinom blogu gdje možete naći i download link za najnoviju verziju plugina.
Kratko istraživanje moju pažnju skrenulo je na inače vrlo praktičan Facebook Like Button. Kako izgleda, ovaj plugin podatke o posjetiteljima blogova na kojima je instaliran šalje trećoj strani. Zalud opravdanja autora i obrazloženje da za rad ovog ‘fićura’ treba SSL certifikat (što realno malo blogova ima; na u ovom slučaju nesreću, moj je jedan od takvih – inače, poželjno je imati SSL certifikat, makar tzv. self-signed, ali o ovome nekom drugom prilikom), trackerska gamad je trackerska gamad i ovaj plugin je izletio s bloga po kratkom postupku.
Pitanje je: čime ga zamijeniti? Vidite, ako želite postaviti facebook Like dugme na svoju stranicu, ne treba vam poseban plugin za to, kod koji vam treba dat će vam i facebook (mada nešto pegla u zadnje vrijeme). Nije problem niti ubaciti taj kod na odgovarajuće mjesto, problem nastaje prilikom ažuriranja WordPressa ili teme, kada nove datoteke zamijene postojeće i time naš novi kod ode u vjetar. Onda ga treba ubacivati ponovno… Dakle, gnjavaža, koje nas srećom oslobađaju plugini, kojih za ove potrebe, opet srećom, ima na pasja preskakala.
Ovo je pouka ne samo meni, već svima nama korisnicima self-hosted verzija WordPressa (i drugih CMSova): kada instaliramo plugin instaliramo mačka u vreći (koliko često čujete da se mačke instaliraju, bile u vreći ili ne?) i zapravo ne znamo šta sve taj plugin čini sve dok ne provjerimo.
Optimizacija
Oboružan novim facebook Like pluginom, odlučio sam napraviti još par dorada prije nego ponovno testiram performanse bloga. Kao što sam već pomenuo, reducirao sam veličinu logo-slike. Usput, odlučio sam isključiti i Gravatar Hovercards uslugu koja se isporučuje uz Jetpac jer mi mogućnost prikazivanja naprednijih i bogatijih Gravatar profila komentatora trenutno nije zanimljiva (ako ćemo pravo, ovaj blog nikad nije bio pretjerano bogat komentarima). U interfejsu WordPressa nećete pronaći opciju za isključivanje Hovercards (to uključuju/isključuju posjetitelji, svaki ponaosob), no to se može jednostavno obaviti tako što ćete ftpom promijeniti ime pripadajućoj php datoteci plugina:
/wp-content/plugins/jetpack/modules/gravatar-hovercards.php
Ime datoteke promijenite u šta vam god drago, a možete je i izbrisati, nikakvih problema neće biti. Preferiram opciju preimenovanja, tako da ako nekad poželim mogu ponovno lako vratiti Hovercards. Imajte na umu da je ovo radnja koju će trebati ponavljati nakon svakog ažuriranja Jetpaca.
Prije optimizacije, copypaste.ba se na testnom serveru učitavao cca 8,23 sekundi, što i nije tako loš rezultat. Učitala su se ukupno 93 odvojena resursa. Nakon optimizacije, vrijeme učitavanje je spalo na 5,63 sekunde, što predstavlja poboljšanje od 2,6 sekundi, ili 31,59% novog vremena učitavanja, a resursa je bilo za 6 manje, 87! Od Quantcasta i TabPressa više nema ni spomena, a sporna slika (JPG zamijenio sam PNG verzijom, koja izgleda isto, a znatno je manja, cca 5 puta) koja se prije učitavala preko 2 i pol sada se učitava za nešto više od pola sekunde.
Održavanje traži malo truda, ali vrijedilo je :)
Slike:
- naslovna: Eye Spy by Aislinn Ritchie
DODATAK 01.10.2011.: U tekstu ranije spominjani Facebook Like Button (ver. 5.9.5) od sada među svojim postavkama ima i opciju uključivanja Tabpress trackinga. Opcija je zadano isključena, što je za svaku pohvalu. Ovim potezom autor plugina vratio je svoj uradak na moj blog :)









Ipak možete koristiti Facebook LIke Button plugin bez tracking koda, ako malo zakopate po kodu samog plugina.
Uglavnom, datoteka facebook-like-button/inc/fun.inc.php
Linija 36., izbrišite ili stavite u komentare:
$Meta .= ‘script type=”text/javascript” src=”https://app.tabpress.com/js/ga_social_tracking.js”>/script>
script type=”text/javascript”>_ga.trackFacebook();/script>’;
I to je to :) Ne zaboravite ponoviti proceduru nakon svakog updatea plugina…
Zanimljivo! Premda dosta obracam paznje na sigurnost, iskreno, nebi se ni sjetio da bi tako nesto moglo biti u pluginovima. Nekako previse vjerujem open source-u. Ocekujem da ce community reagirati na tako nesto. Vidim da to treba mijenjati.
Btw, sto se tice like buttona, ja koristim “Like” od bottomless-a. On je cist, koliko vidim.
Zanimljiva tema svakako!
Razmišljamo slično. Svi su izgledi da treba ovako provjeravati site s vremena na vrijeme.
[...] Najprije mislim na kamaru skripti (JavaScript?) koje volimo bezbrižno i često lakomisleno istovariti posjetiteljima koji na to neće nimalo blagonaklono gledati kada im zbog našeg bloga uštopa kompjuter. Ne treba zaboraviti da se Internetom često surfa sa prilično starih i slabašnih konfiguracija, kanti koje je vrijeme odavno pregazilo i koje svoju pemziju taljigaju služeći kao kompjuteri za stoput spominjano i nadasve famozno ‘prosurfat Internetom i provjerit’ mail’. Osim toga, danas se ‘netu sve više i više pristupa s raznoraznih mobilnih platformi, smartphonea i tableta, koji se u pravilu ne mogu podičiti nekim galaktičkim računalnim performansama. Stoga, ne smijemo pretpostavljati da će mašine posjetitelja s lakoćom prožvakati sve što im serviramo. Dobra je praksa s vremena na vrijeme provjeriti koji se sve resursi učitavaju prilikom posjete vašem blogu i onda napraviti odgovarajuće optimizacije; o tome možete više čitati u mom postu pod nazivom Špijuni su među nama – third-party tracking skriven u WordPress pluginu. [...]