***Web bug***, **tracking pixel**, **web beacon** on verkkosivulle tai sähköpostiviestiin upotettu kohde, joka on yleensä käyttäjälle näkymätön, mutta mahdollistaa tiedon saamisen siitä, että käyttäjä on avannut sivun tai viestin. Sen yksi käyttötarkoitus on sähköpostiviestien seuranta tai kävijöiden seuranta verkkosivulla.

Johdanto
--------

Web bugiksi kutsutaan tekniikoita, joilla seurataan, kuka lukee verkkosivua tai sähköpostiviestiä sekä milloin ja miltä tietokoneelta lukeminen tapahtuu. Niillä voidaan myös nähdä, lähetettiinkö viesti edelleen jollekulle toiselle tai kopioitiinko WWW-sivu jollekin toiselle sivustolle. Web bugit olivat pieniä kuvia. Nykyisinkin ne ovat tyypillisesti 1x1 -pikselin läpinäkyviä kuvia. Ominaisuuden voi toteuttaa myös JavaScriptin avulla.

Kaikki sähköpostiviestit ja verkkosivut eivät ole täysin "omavaraisia"; ne voivat viitata toisella palvelimella sijaitsevaa sisältöön sen sijaan, että sisältäisivät sen itse. Kun sähköpostiohjelma tai selain valmistelee tällaisen viestin tai sivun esittämistä varten, se tavallisesti lähettää palvelimelle pyynnön saada kyseinen sisältö.

Nämä pyynnöt tyypillisesti sisältävät pyytävän tietokoneen IP-osoitteen; ajan, jolloin sisältöä pyydettiin; pyynnön tehneen selaimen tyypin; ja evästeet, jotka palvelin oli aiemmin asettanut. Palvelin voi tallentaa kaiken tämän tiedon ja yhdistää sen ainutkertaiseen seurantapolettiin, joka on liitettynä sisältöpyyntöön.

Web bugeja käyttävät yleensä kolmannet osapuolet seuratakseen asiakkaiden toimia verkkosivustolla. Evästeiden poistaminen käytöstä selaimen asetuksista voi estää joitakin web bugeja seuraamasta asiakkaan jotain tiettyä toimintaa. Sivuston lokitietoihin tallentuu silti sivupyyntö asiakkaan IP-osoitteesta, mutta tällöin ei voida tallentaa ainutkertaista, evästeeseen yhdistettävää tietoa. Palvelinteknologiat, jotka eivät käytä evästeitä, voivat kuitenkin mahdollistaa myös evästeet estäneiden käyttäjien seurannan. Sivusto voi esimerkiksi tunnistaa pyynnön uudelta kävijältä ja lähettää tälle käyttäjälle linkkejä, jotka välittävät ainutkertaisen tunnisteen GET-parametrina.

Esimerkkinä web bugien tarjoamista seurantamahdollisuuksista voidaan ajatella yritystä, joka omistaa verkkosivustojen verkoston. Tällä yrityksellä voi olla verkosto, joka vaatii kaikkien kuvien pitämisen yhdellä palvelimella, kun taas sivut on tallennettu muualle. Yritys voi käyttää web bugeja laskeakseen ja tunnistaakseen käyttäjät, jotka kulkevat eri palvelimien välillä. Sen sijaan, että yritys keräisi tilastoja ja ylläpitäisi evästeitä kaikilla palvelimillaan erikseen, se voi käyttää web bugeja pitämään kaiken tiedon yhdessä.

Sähköpostissa monet web bugit voidaan estää poistamalla HTML:n näyttö käytöstä ja näyttämällä vain tekstiversiot viesteistä. Kuvien näytön poistaminen ei yleensä riitä, jos HTML on muuten päällä, sillä muitakin tekniikoita voidaan käyttää.

Toteutus
--------

Alun perin web bugit olivat pieniä (yleensä 1×1 pikselin kokoisia) läpinäkyviä GIF- tai PNG-kuvia, jotka oli upotettu HTML-sivuun. Sivu sijaitsi yleensä verkossa, mutta se saattoi olla myös sähköpostiviesti. Nykyaikaiset web bugit käyttävät myös mm. HTML-elementtejä iframe, style, script, input link, embed ja object käyttäjien seurantaan. Kun käyttäjä avaa sivun graafisella selaimella tai sähköpostiohjelmalla, kuva tai muu tieto ladataan. Tämän latauksen tehdäkseen selaimen on pyydettävä kuva sitä säilyttävältä palvelimelta; samalla palvelin saa tiedon latauksesta. Tuloksena palvelinta ajava organisaatio saa tiedon aina, kun HTML-sivu avataan.

Vaikka web bugeja käytetään samoin verkkosivuilla ja sähköpostissa, niillä on kuitenkin eri tarkoituksia:

1. Jos web bug on upotettuna sähköpostiviestiin, kuva ladataan käyttäjän avatessa viestin ensimmäistä kertaa, ja voiaan myös ladata aina kun hän avaa viestin uudelleen;
2. Kun verkkosivu, jolla on tai ei ole web bugia ladataan, sivun sisältävä palvelin tietää ja voi tallettaa pyynnön tehneen tietokoneen IP-osoitteen. Tämä tieto voidaan sitten hakea palvelimen lokitiedostoista ilman web bugeja. Bugeja käytetään, kun seurantaa tehdään palvelimelta, joka on eri kuin sivun sisältävä palvelin. Tämä tulee tarpeeseen esimerkiksi, kun verkkosivut sijaitsevat eri palvelimilla, tai kun seurannan tekee kolmas osapuoli.

Kuten kaikki HTTP-protokollaa käyttäen siirretyt tiedostot, myös web bugit pyydetään lähettämällä palvelimelle bugin URL, ja mahdollisesti myös bugin sisältävän sivun URL. Molemmat URL:t sisältävät palvelimelle hyödyllistä tietoa:

1. Bugin sisältävän sivun URL:stä palvelin voi selvittää, minkä sivun käyttäjä on avannut;
2. Bugin oma URL voi sisältää mielivaltaisen merkkijonon, mutta silti viitata samaan bugiin; tätä lisäinformaatiota voidaan käyttää bugia ladattaessa vallinneiden olosuhteiden lähempään tarkasteluun. Lisäinformaatio voidaan liittää URL:ään, kun sivua lähetetään, tai sivun jo latauduttua JavaScriptin avulla.

Esimerkiksi sähköpostiviesti osoitteeseen `joku@esimerkki.org` voi sisältää upotetun kuvan, jonka URL on `http://esimerkki2.com/bug.gif?joku@esimerkki.org`. Kun käyttäjä avaa viestin, kuva pyydetään palvelimelta tätä URL:ää käyttäen. Etsiessään lähetettävää tiedostoa palvelin jättää huomiotta kysymysmerkkiä seuraavan osan, mutta täydellinen URL tallentuu palvelimen lokitiedostoon. Tuloksena tiedosto `bug.gif` lähetetään ja näytetään käyttäjän sähköpostiohjelmassa; samaan aikaan palvelin tallentaa tiedon, että tämä nimenomainen, osoitteeseen `joku@esimerkki.org` lähetetty sähköpostiviesti on luettu. Tällä järjestelmällä roskapostittaja tai sähköpostimarkkinoija voi lähettää samankaltaisia viestejä suureen määrään osoitteita tarkistaakseen, mitkä ovat toimivia ja mitä postitilejä luetaan.

Web bugit sähköpostissa
-----------------------

Sähköpostiviesteihin upotetuilla web bugeilla on suurempia seuraamuksia yksityisyydelle kuin bugeilla, jotka on upotettu verkkosivuille. Tyypillisesti sähköpostissa tulleen web bugin URL sisältää ainutkertaisen tunnisteen. URL:n lataaminen kertoo, että viesti on luettu. Viestin lähettäjä voi siten myös tallentaa täsmällisen ajan, jolloin viesti luettiin, sekä lukemiseen käytetyn tietokoneen (tai käyttäjän käyttämän välityspalvelimen) IP-osoitteen. Lähettäjä voi näin kerätä yksityiskohtaista tietoa siitä, milloin ja mistä tietty vastaanottaja lukee sähköpostejaan.

Web bugien avulla tapahtuvan seurannan voi estää käyttämällä sähköpostiohjelmaa, joka ei lataa HTML-viesteihin upotettujen kuvien URL:iä. Monen graafisen sähköpostiohjelman voi asettaa olemaan lataamatta ulkopuolisia kuvia. Tällaisia ovat esimerkiksi GMail- ja Yahoo-webmailpalvelut, Mozilla Thunderbird, Opera, uudet Microsoft Outlookin versiot sekä KMail. Muita HTML-tekniikoita, kuten iframeja, voidaan silti käyttää viestien lukemisen seurantaan, joten monet näistä ohjelmista eivät kuitenkaan tarpeeksi suojaa käyttäjäänsä.

Tekstipohjaiset sähköpostinlukuohjelmat, kuten Pine ja Mutt, tai graafiset ohjelmat, joissa on täysin tekstipohjainen HTML-tuki, kuten Mulberry, eivät tulkitse HTML:ää tai näytä kuvia, joten ne eivät ole alttiita viestien seurannalle web bugien avulla. Pelkkänä tekstinä lähetetyt sähköpostiviestit eivät voi sisältää web bugeja, sillä niissä ei voi olla kuvia, ja niiden lukeminen onkin turvallista kaikilla sähköpostiohjelmilla.

Monet nykyaikaiset sähköpostiohjelmat ja verkkosivupohjaiset sähköpostipalvelut eivät lataa kuvia, kun käyttäjä avaa tuntemattomalta lähettäjältä tulleen tai roskapostiksi epäillyn viestin. Käyttäjän on erityisesti valittava, että hän haluaa ladata kuvat. Myös sähköpostipalvelin voi suodattaa web bugit pois, jolloin ne eivät edes saavu käyttäjälle; MailScanner on esimerkki tällaisesta suodatusohjelmasta. Tuloksena web bugit ovat menettämässä tehoaan, eikä niihin voi enää luottaa sähköpostimainonnan lukijamäärien mittarina.

Lähteet
-------

1. ↑  Email Tracking: It Gets Worse. Freedom to Tinker.

Aiheesta muualla
----------------

* EFF:n Web Bug FAQ
* Tietoja urkkivat web bugit lisääntyvät nopeasti (Digitoday 20.8.2001)
* "Näkymätön kuva": yksipikselinen läpinäkyvä gif-kuva ja miten sillä voi tehdä temppuja Web-sivuilla (J. Korpela)
* Hakusana 'web beacon' termipankissa.