Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Ciasteczka zombie

Autor: Piotr Karpiuk o wtorek 1. Marzec 2011


Ciasteczko zombie pełni zasadniczo tę samą funkcję co zwykłe ciasteczko HTTP, tyle że jest bardzo trudne do usunięcia z komputera klienta. Efekt jest uzyskiwany poprzez replikację danych ciasteczka z użyciem wszelkich sposobów zapamiętywania danych po stronie klienta – a takich możliwości nie brakuje w technologiach HTML5 czy Flash. Ciasteczko bez trudu się odtwarza gdy użytkownikowi nie udało się usunąć wszystkich kopii.

Idea przyświecająca powstaniu ciasteczek HTTP była szczytna: za ich pomocą możliwa staje się realizacja sesji w aplikacjach webowych (protokół HTTP jest bezstanowy), ale również witryny używają ich do przechowywania na komputerze użytkownika ustawień dzięki którym internauta zastaje witrynę w takim stanie jakby nigdy jej nie opuszczał (dotyczy to np. zawartości koszyka w e-sklepie).

Z czasem zrobiło się mniej ciekawie, gdy ciasteczka zaczęły być wykorzystywane do śledzenia aktywności użytkownika dla celów marketingowych (np. lepszej personalizacji reklamy). Reakcją twórców przeglądarek było m.in. powstanie trybu InPrivate w przeglądarkach (teoretycznie pozwala on przeglądać internet bez pozostawiania śladów na komputerze klienta, np. w kafejce internetowej), jak również zaimplementowanie możliwości blokowania ciasteczek dla wybranych witryn, czy w końcu opcja wyczyszczenia cache’a przeglądarki w dowolnie wybranym przez użytkownika momencie.

Z różnych powodów istnieje wiele technik przechowywania danych aplikacji webowej na dysku twardym klienta w taki sposób aby przeżywały one restart przeglądarki czy systemu operacyjnego – dotyczy to zwłaszcza najnowszych przeglądarek implementujących HTML5. Motorem powstania takich rozwiązań były ograniczenia ciasteczek (w szczególności ilości możliwych do zapamiętania danych), pojawienie się aplikacji webowych będących w stanie działać offline np. na urządzeniach mobilnych (synchronizujących dane z serwerem po ponownym nawiązaniu połączenia przeglądarki z Internetem) itp.

Oczywiście reklamodawcy nauczyli się wykorzystywać tą sposobność dla własnych celów i tak powstały ciasteczka zombie, których usunięcie nie jest możliwe poprzez proste wyczyszczenie cache’a przeglądarki czy korzystanie z trybu InPrivate. Takie ciasteczko duplikuje swoją zawartość przy użyciu:

  • tradycyjnego mechanizmu ciasteczek,
  • ciasteczek Flash (Local Shared Objects), ciasteczek Silverlight (Isolated Storage),
  • przechowywanych wśród plików tymczasowych przeglądarki plików PNG zawierających ukryte dane (wartości RGB),
  • mechanizmów LocalStorage, DOM Storage, WebCache i Database Storage z HTML5 (patrz osobny artykuł),
  • mechanizmów specyficznych dla MSIE takich jak UserData,
  • HTTP ETags.

Za pomocą takich ciasteczek implementuje się też operację banowania niepożądanego użytkownika serwisu społecznościowego.

Istnieje opensource’owa implementacja owych diabelskich ciasteczek, o nazwie Evercookie, napisana przez Samy’ego Kamkara – znanego m.in. ze stworzenia groźnego robaka internetowego. Wbrew pozorom ciasteczka zombie są popularne i stosowane nawet przez takie firmy jak Google, MTV, Hulu, ABC, MySpace, NBC, YouTube, czy Yahoo.

Zatem, jak uniknąć ciasteczek zombie? W sposób kontrolowany stosować zwykłe ciasteczka, JavaScript i Flash tylko tam gdzie jest to absolutnie niezbędne (np. przy użyciu wtyczek BetterPrivacy, NoScript przeglądarki Firefox), a blokować na wszystkich innych witrynach.

Autorzy artykułu „Złe ciasteczka” w czasopiśmie Komputer Ekspert 4/2010 przekonują, że tryb InPrivate w Safari jest autentycznie bezpieczny pod tym względem.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>