Ciasteczka

Protokół HTTP wykorzystywany do przesyłania stron WWW i komunikowania się z serwerami przechowującymi je jest bezstanowy. Oznacza to, że każda kolejna strona WWW jest pobierana z serwera całkowicie niezależnie od poprzednich, a serwer nie ma najmmejszego pojęcia, że kolejne operacje pobrania stron są ze sobą w jakikolwiek sposób powiązane.
Większość serwisów WWW wymaga jednak, by serwer był w stanie powiązać ze sobą strony otwierane przez konkretnego jednego użytkownika. Na przykład serwis bankowy na jednej stronie WWW umożliwia zalogowanie się użytkownika, na drugiej wyświetla stan konta, a na trzeciej pozwala założyć lokatę. Użytkownik musi mieć możliwość przechodzenia pomiędzy poszczególnymi modułami serwisu i spodziewa się, że operacje wykonane na poprzedniej stronie będą miały swoje odwzorowanie na kolejnej. Niestety, sam protokół tego nie umożliwia.
W takiej sytuacji narodziły się ciasteczka. Wprowadzone początkowo przez firmę Netscape, szybko stały się obowiązującym powszechnie standardem, gdyż rozwiązywały całkowicie wyżej opisany problem w prosty w implementacji sposób.
Ciasteczka to niewielka porcja informacji identyfikowana nazwą oraz domeną serwera HTTP, który przysłał tę informację. W ciasteczku zapisana może być liczba, tekst lub dowolny inny ciąg danych, zrozumiały dla serwera HTTP. Ciasteczko jest tworzone na żądanie serwera HTTP: gdy skrypt generujący stronę WWW zdecyduje się zapisać do przyszłego wykorzystania jakąś wartość powiązaną z sesją, dodaje na początku kodu odpowiednie pole nagłówkowe, a serwer przesyła je - wraz z resztą kodu strony - przeglądarce, której obowiązkiem jest zapisanie otrzymanych danych. Z kolei wraz z każdym kolejnym odwołaniem do serwera przeglądarka musi przesłać (wśród nagłówków towarzyszących odwołaniu) wszystkie ciasteczka dotychczas utworzone przez ten serwer - dzięki temu podczas komponowania kodu kolejnej strony skrypt działający na serwerze będzie dysponował potrzebnymi danymi niezależnie od tego, czy między odwołaniami minęła sekunda, czy minuta, ile w tym czasie innych odwołań serwer obsłużył, a nawet czy między odwołaniami serwer nie został zatrzymany i ponownie uruchomiony.
Choć w założeniu ciasteczka miały być bezpieczne - skrypt otrzymuje jedynie te, które zostały utworzone przez serwer, na którym dany skrypt działa - szybko zostały wykorzystane również do niecnych celów. Najpopularniejszym zastosowaniem niezgodnym z interesem użytkowników jest śledzenie sposobu przeglądania stron internetowych przez wszelkiego rodzaj u moduły reklamowe: choć są one umieszczone na różnych stronach WWW, zazwyczaj sama reklama pobierana jest z serwera reklamodawcy, który również może zapamiętywać i odtwarzać własne ciasteczka. Jeśli w takich ciasteczkach zapamiętane zostaną na przykład adresy stron odwiedzanych przez użytkownika, serwer może dostosować reklamy tak, by ściśle pasowały do profilu zainteresowań internauty.
Czy to jest niebezpieczne? To zależy. Na pewno jest to naruszenie prywatności w sensie zbierania danych handlowych bez wiedzy i zgody zainteresowanego. Z drugiej strony jeśli przeglądarka nie ma jakichś ewidentnych błędów, które mógłby wykorzystać sprytny skrypt JavaScript, pobierając bardziej poufne dane (adresy pocztowe, obce ciasteczka, hasła), dane zbierane tą metodą nie przydadzą się do niczego poza wymienionym profilowaniem reklam.
Każda przyzwoita przeglądarka WWW jest obecnie wyposażona w mechanizmy umożliwiające zwiększenie bezpieczeństwa korzystania z ciasteczek . Wybranym serwerom WWW można odebrać prawo tworzenia ciasteczek w ogóle, można też włączyć tryb, w którym każda operacja zapisania ciasteczka w buforze przeglądarki będzie musiała zostać potwierdzona przez użytkownika. Przeglądarki mogą też kasować ciasteczka przy kończeniu pracy z komputerem (dzięki czemu strony WWW ich wymagające działają poprawnie, lecz niemożliwe staje się zapamiętywanie danych w ciasteczkach na dłużej). W ostateczności można całkowicie wyłączyć mechanizm ciasteczek, jednak uniemożliwi to działanie wielu rozbudowanych stron WWW (sond internetowych, forów dyskusyjnych, stron bankowych).
Warto też wspomnieć, że to wszystko, co da się zrobić za pomocą ciasteczek, obecnie bez problemów można zrealizować bez ich użycia. Wzrost mocy obliczeniowej serwerów i spadek ich cen spowodowały, że obciążanie serwera zapamiętywaniem wszystkich sesji użytkowników ( i parametrów z nimi związanych) nie jest już takim problemem jak dawniej. Nowoczesne języki skryptowe ułatwiające dynamiczne generowanie kodu HTML (na przykład PHP) posiadają wręcz wbudowane mechanizmy obsługi sesji klienckich oraz przypisanych im zmiennych dowolnego typu. Bronienie się przed takimi technikami jest zdecydowanie trudniejsze niż panowanie nad ciasteczkami , które stanowią swego rodzaju "mniejsze zło".


Źródła i Literatura:
Radosław Sokół - "Jak pozostać anonimowym w sieci" - Omijaj natrętów w sieci- chroń swoje dane osobowe!, Wydawnictwo Helion 2015, ISBN: 978-83-283-066 0-8.
Polish language edition published by HELION S.A. Copyright© 2015.
Copyright© 2015 Wydawnictwo HELION S.A
WWW: http:pl/helion.pl (księgarnia internetowa, katalog książek)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *