W ostatnich tygodniach bardzo du\u017co si\u0119 dzieje w Internecie wok\u00f3\u0142 cookies<\/em> (czyli tzw. ciasteczek). Wszystko za spraw\u0105 nowelizacji ustawy, kt\u00f3ra powoduje, \u017ce autorzy witryn, kt\u00f3re cookies<\/em> wykorzystuj\u0105, musz\u0105 o tym poinformowa\u0107 swoich u\u017cytkownik\u00f3w. Ale co to s\u0105 ciasteczka,\u00a0co ze sob\u0105 nios\u0105 i o co chodzi z t\u0105 ustaw\u0105? O tym poni\u017cej.<\/p>\n Internet opiera si\u0119 w du\u017cej mierze o protok\u00f3\u0142 HTTP. Komunikacja ze stron\u0105 internetow\u0105 przebiega w skr\u00f3cie w taki spos\u00f3b:<\/p>\n Gdzie w tym wszystkim znajduj\u0105 si\u0119 cookies<\/em>? W cz\u0119\u015bci nag\u0142\u00f3wkowej \u017c\u0105dania i odpowiedzi. Je\u017celi serwis WWW chce, aby przegl\u0105darka zapisa\u0142a informacje w swojej pami\u0119ci i przekaza\u0142a je w kolejnych \u017c\u0105daniach z powrotem do serwisu, instrukcje wysy\u0142a jako nag\u0142\u00f3wek (Set-Cookie<\/em>), kt\u00f3ry zawiera dla ka\u017cdego ciastka nazw\u0119, zawarto\u015b\u0107 oraz opcjonalnie czas wa\u017cno\u015bci (lub „do ko\u0144ca sesji”) i zakres widoczno\u015bci (domena, \u015bcie\u017cka, protok\u00f3\u0142, szyfrowanie). Przegl\u0105darka zapisuje te informacje w dowolny przewidziany przez jej tw\u00f3rc\u00f3w spos\u00f3b oraz wysy\u0142a, r\u00f3wnie\u017c poprzez nag\u0142\u00f3wki (Cookie<\/em>)\u00a0nazwy i tre\u015bci ciastek. I to jest wszystko je\u017celi chodzi o technologi\u0119.<\/p>\n <\/a><\/p>\n Jak wida\u0107 wy\u017cej, przegl\u0105danie stron WWW to seria \u017c\u0105da\u0144 i odpowiedzi pomi\u0119dzy przegl\u0105dark\u0105 na urz\u0105dzeniu dost\u0119powym u\u017cytkownika, a serwerem WWW. Przy takiej konstrukcji nie ma mo\u017cliwo\u015bci (poza np. umieszczaniem tej informacji w adresie ka\u017cdej kolejnej strony co by\u0142oby bardzo uci\u0105\u017cliwe) rozpoznania czy dany u\u017cytkownik wchodz\u0105cy na stron\u0105 to jest ten sam, kt\u00f3ry by\u0142 na niej przed chwil\u0105, czy ju\u017c nowy.<\/p>\n Pierwszy bardzo wa\u017cny przyk\u0142ad u\u017cycia to logowanie do serwisu. U\u017cytkownik podaje nazw\u0119 u\u017cytkownika i has\u0142o, i je\u017celi by\u0142y one prawid\u0142owe, z ciastkiem u\u017cytkownika na serwerze powi\u0105zana zostaje informacja, kt\u00f3ra pozwala przy kolejnym wej\u015bciu na stron\u0119 uznanie u\u017cytkownika za zalogowanego. Drugie popularne wykorzystanie to statystyki. Ka\u017cdy, kto chocia\u017c troch\u0119 przegl\u0105da\u0142 statystyki stron WWW, zapewne spotka\u0142 si\u0119 z dwoma has\u0142ami – unikalni u\u017cytkownicy (unique visitors<\/em>) i\u00a0ods\u0142ony (pageviews<\/em>). Przy pierwszym wej\u015bciu na stron\u0119, u\u017cytkownik jest liczony jako unikalny oraz zliczana jest ods\u0142ona. Dodatkowo wys\u0142ana zostaje informacja o ciastku. Je\u015bli u\u017cytkownik wraca z ciastkiem, nie jest ju\u017c unikalnym u\u017cytkownikiem i liczone s\u0105 tylko ods\u0142ony.<\/p>\n Cookies<\/em> cz\u0119sto s\u0105 mylnie okre\u015blane jako pliki, a przecie\u017c nie musz\u0105 by\u0107 plikami. Mechanizm ich przechowywania le\u017cy w gestii (tw\u00f3rc\u00f3w) przegl\u0105darki. Bardzo cz\u0119sto jest to wewn\u0119trzny system bazodanowy, gdzie ciasteczka nie maj\u0105 z systemem plik\u00f3w niczego wsp\u00f3lnego.<\/p>\n Ciasteczkami nie da si\u0119 przes\u0142a\u0107 \u017cadnych wirus\u00f3w, co te\u017c jest (by\u0142o?) do\u015b\u0107 popularnym mitem. Ciasteczka, jak pisa\u0142em wy\u017cej, to tylko i wy\u0142\u0105cznie dane tekstowe przypisane do nazwy i adresu strony. Ci\u0119\u017cko sobie wyobrazi\u0107 kawa\u0142ek tekstu b\u0119d\u0105cy wirusem.<\/p>\n Mo\u017cliwo\u015b\u0107 \u015bledzenia u\u017cytkownika za pomoc\u0105 ciasteczek te\u017c jest do\u015b\u0107 ograniczona. Zabezpieczenia przegl\u0105darek przed tym, aby ciasteczka by\u0142y odczytywane przez niepowo\u0142an\u0105 stron\u0119 s\u0105 coraz lepsze, a wi\u0119c u\u017cytkownicy s\u0105 coraz bardziej bezpieczni.<\/p>\n Same\u00a0cookies<\/em> w mojej ocenie nie nios\u0105 za sob\u0105 praktycznie \u017cadnych zagro\u017ce\u0144. Problemem mo\u017ce by\u0107 ich implementacja w serwisach WWW. Bardzo cz\u0119sto takie aplikacje ufaj\u0105 bezgranicznie informacji zawartej w ciastku zawieraj\u0105cym ID sesji. Mimo, \u017ce np. w PHP<\/a> domy\u015blnie liczba r\u00f3\u017cnych ID sesji ma oko\u0142o 50 cyfr i jej zgadni\u0119cie jest\u00a0trudne, to przechwycenie ju\u017c jest wzgl\u0119dnie \u0142atwe. „Wystarczy” pods\u0142ucha\u0107 jedno \u017c\u0105danie zalogowanego u\u017cytkownika. Dlatego serwisy internetowe powinny stosowa\u0107 dodatkowe zabezpieczenia w postaci szyfrowania (HTTPS<\/em>) albo sprawdzania innych danych u\u017cytkownika.<\/p>\n Innym zagro\u017ceniem, tym bardziej zale\u017cnym od implementacji, jest spos\u00f3b wykorzystania danych z ciastek. Dane te traktowane s\u0105 w aplikacjach podobnie jak inne formy zapytania (POST<\/em>, parametry URL), dlatego dotycz\u0105 ich wszystkie zagro\u017cenia typu XSS<\/em>, SQL injection<\/em>, itp.<\/p>\n Ustawa tak popularna ostatnio w Internecie w kontek\u015bcie cookies<\/em>\u00a0to\u00a0Ustawa z dnia 16 lipca 2004 r. Prawo telekomunikacyjne<\/em>, a przede wszystkim jej artyku\u0142 173. Ust\u0119p 1 m\u00f3wi o przychowywaniu i odczytywaniu informacji przechowywanych w przegl\u0105darkach („telekomunikacyjnym urz\u0105dzeniu ko\u0144cowym”), ust\u0119p 3 wy\u0142\u0105cza sytuacje, kiedy us\u0142uga by\u0142a \u017c\u0105dana przez u\u017cytkownika. Interpretacja tego zapisu mo\u017ce by\u0107 r\u00f3\u017cna, ale raczej jasno wynika z tego, \u017ce nie trzeba informowa\u0107 zawsze i ka\u017cdego. W szczeg\u00f3lno\u015bci, je\u017celi nasza aplikacja u\u017cywa ciasteczek do zapisania informacji o zalogowanym u\u017cytkowniku, to wyra\u017anie jest to na jego \u017c\u0105danie oraz jest konieczne do dzia\u0142ania aplikacji. Co innego\u00a0cookies<\/em> u\u017cywane do zliczania statystyk, przede wszystkim tych, wystawianych przez aplikacje zewn\u0119trzne (jak Google Analytics albo Piwik<\/a>). Je\u017celi na stronie umieszczone s\u0105 tego typu skrypty, ostrzega\u0107 raczej nale\u017cy.<\/p>\n Spos\u00f3b ostrzegania nie zosta\u0142 jednak opisany (okre\u015blenia „bezpo\u015brednio”, „w spos\u00f3b jasny, \u0142atwy i zrozumia\u0142y” s\u0105 bardzo nieostre), dlatego w\u0142a\u015bciciele stron maj\u0105 tutaj du\u017co mo\u017cliwo\u015bci interpretacji. Wiele serwis\u00f3w decyduje si\u0119 na wyra\u017anie wydzielone z grafiki strony ostrze\u017cenie w g\u00f3rnej cz\u0119\u015bci serwisu. Czasem ograniczaj\u0105 si\u0119 do kr\u00f3tkiej notki, np. w stopce. Ale na pewno nie polecam tego, co na swojej stronie zrobi\u0142o UPC, czyli blokowanie ca\u0142ej strony (okno modalne) dop\u00f3ki u\u017cytkownik nie potwierdzi, \u017ce przeczyta\u0142 informacj\u0119:<\/p>\n <\/a><\/p>\n Moje zaniepokojenie budzi r\u00f3wnie\u017c nieprecyzyjny opis tego, o czym nale\u017cy ostrzega\u0107. „Przechowywanie informacji lub uzyskiwanie dost\u0119pu do informacji ju\u017c przechowywanej w telekomunikacyjnym urz\u0105dzeniu ko\u0144cowym abonenta lub u\u017cytkownika ko\u0144cowego”. Domy\u015blnie jest to rozumiane jako pliki cookie, ale tak naprawd\u0119 wszystko, co wyst\u0119puje na stronach WWW mo\u017ce by\u0107 obj\u0119te tak\u0105 definicj\u0105. Obrazki, arkusze CSS, skrypt JavaScript – to wszystko mo\u017ce by\u0107 przecie\u017c zachowane w pami\u0119ci cache przegl\u0105darki, a potem odczytywane i przetwarzane przez serwis. Czy to by oznacza\u0142o, \u017ce u\u017cytkownicy powinni by\u0107 ostrzegani, \u017ce „na naszej stronie wykorzystujemy obrazki”? A co z innymi technologiami? Aplikacje JavaScriptowe dane o sesji mog\u0105 przechowywa\u0107 w Web Storage (technologia przechowywania danych z HTML5) i w og\u00f3le nie u\u017cywa\u0107 ciastek, a zachowa\u0107 wszystkie funkcjonalno\u015bci (\u0142\u0105cznie ze „\u015bledzeniem” u\u017cytkownik\u00f3w).<\/p>\n Niestety, ustawa jest nieprecyzyjna, niedok\u0142adna, \u015bciganie jest nieokre\u015blone, a mimo wszystko jej stosowanie w serwisach WWW jest w mojej ocenie nieadekwatnie powszechne i inwazyjne.<\/p>\n Autorzy zdj\u0119\u0107 wykorzystanych we wpisie:\u00a0Kimberly Vardeman<\/a> i\u00a0Robyn Lee<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":" W ostatnich tygodniach bardzo du\u017co si\u0119 dzieje w Internecie wok\u00f3\u0142 cookies (czyli tzw. ciasteczek). Wszystko za spraw\u0105 nowelizacji ustawy, kt\u00f3ra powoduje, \u017ce autorzy witryn, kt\u00f3re cookies wykorzystuj\u0105, musz\u0105 o tym poinformowa\u0107 swoich u\u017cytkownik\u00f3w. Ale co to s\u0105 ciasteczka, co ze sob\u0105 nios\u0105 i o co chodzi z t\u0105 ustaw\u0105?<\/p>\n","protected":false},"author":1,"featured_media":923,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[81,10,11],"tags":[61,82,62,83],"jetpack_publicize_connections":[],"yoast_head":"\nHTTP i cookies<\/em><\/h3>\n
\n
Do czego s\u0142u\u017c\u0105\u00a0cookies<\/em><\/h3>\n
Czym\u00a0cookies<\/em> nie s\u0105<\/h3>\n
Potencjalne zagro\u017cenia<\/h3>\n
Ustawa o zmianie ustawy<\/h3>\n