Plik cookie to fragment danych przechowywany w przeglądarce. Służy on do utrzymywania stanu oraz innych informacji potrzebnych witrynie do obsługi funkcji.
Plik cookie to niewielki plik, który witryny przechowuje na komputerze użytkownika. Zapisywane w nim informacje wędrują między przeglądarką a witryną.
Każdy plik cookie to para klucz-wartość wraz z szeregiem atrybutów, które określają, kiedy i gdzie jest używany. Te atrybuty służą np. do określania dat ważności lub wskazywania, że plik cookie powinien być przesyłany tylko przez HTTPS. Plik cookie można ustawić w nagłówku HTTP lub za pomocą interfejsu JavaScript.
Pliki cookie to jedna z metod dodawania stałych stanów do witryn. Z biegiem lat ich możliwości i możliwości ewoluowały, jednak odeszły one na platformę z pewnymi problematycznymi starszymi problemami. Aby rozwiązać ten problem, przeglądarki (w tym Chrome, Firefox i Edge) zmieniają sposób działania, aby wyegzekwować ustawienia domyślne chroniące prywatność.
Pliki cookie w praktyce
Załóżmy, że prowadzisz bloga, na którym chcesz wyświetlać informacje o nowościach. na użytkowników. Użytkownicy mogą zamknąć promocję, a potem nie zobaczą jej przez jakiś czas. Możesz zapisać to ustawienie w pliku cookie i skonfigurować je tak, by wygasało po miesiącu (2 600 000 sekund) i wysyłaj go tylko przez HTTPS. Ten nagłówek będzie wyglądał tak: to:
Set-Cookie: promo_shown=1; Max-Age=2600000; Secure
Gdy czytelnik wyświetla stronę, która spełnia te wymagania, bezpieczne połączenie, a plik cookie jest działający od niecałego miesiąca – jego przeglądarka wyśle w żądaniu ten nagłówek:
Cookie: promo_shown=1
Możesz też dodać i odczytać pliki cookie dostępne w tej witrynie za pomocą kodu JavaScript,
document.cookie
Przypisanie przypisania do użytkownika document.cookie
spowoduje utworzenie lub
zastąpić plik cookie tym kluczem. Możesz na przykład spróbować wykonać następujące czynności w
w konsoli JavaScript przeglądarki:
→ document.cookie = "promo_shown=1; Max-Age=2600000; Secure"
← "promo_shown=1; Max-Age=2600000; Secure"
Odczytanie document.cookie
spowoduje wyświetlenie wszystkich plików cookie dostępnych w bieżącym
w kontekście, w którym każdy plik cookie jest oddzielony średnikiem:
→ document.cookie;
← "promo_shown=1; color_theme=peachpuff; sidebar_loc=left"
Jeśli wypróbujesz tę funkcję na kilku popularnych stronach, zauważysz, że większość
ustaw więc znacznie więcej niż tylko 3 pliki cookie. W większości przypadków
są wysyłane w przypadku każdego żądania wysyłanego do tej domeny, które zawiera wiele
przed konsekwencjami. Przepustowość przesyłania jest często bardziej ograniczona niż pobieranie w przypadku
przez użytkowników, przez co narzut obsługi wszystkich żądań wychodzących zwiększa opóźnienie
do pierwszego bajtu. Zachowaj ostrożność przy określaniu liczby i rozmiaru plików cookie. Marka
za pomocą atrybutu Max-Age
, aby pliki cookie nie były „pozostałe”
jest dłuższy niż potrzeba.
Czym są własne pliki cookie i pliki cookie innych firm?
Jeśli wrócisz do wyboru wcześniej przeglądanych witryn, prawdopodobnie zauważył, że pliki cookie były dostępne dla różnych domen, tylko tę, którą właśnie odwiedzasz. Pliki cookie, które są zgodne z domeną strony czyli informacje zawarte na pasku adresu przeglądarki, jako własne pliki cookie. Podobnie pliki cookie z domen innych niż bieżące witryny są określane jako pliki cookie innych firm. To nie jest wartość bezwzględna , ale zależy od kontekstu użytkownika; ten sam plik cookie może być własny lub innej firmy, w zależności od tego, z jakiej witryny przegląda użytkownik w danym momencie.
Kontynuując powyższy przykład, załóżmy, że jeden z Twoich postów na blogu zawiera
Zdjęcie szczególnie cudownego kota, które jest hostowane w
/blog/img/amazing-cat.png
To niesamowite zdjęcie.
korzysta z niego bezpośrednio w swojej witrynie. Jeśli użytkownik, który odwiedził Twojego bloga, i miał
promo_shown
, a potem wyświetli im stronę amazing-cat.png
.
witryny użytkownika, że w takim żądaniu obrazu zostanie wysłany plik cookie. Ten
nie jest szczególnie przydatny dla nikogo, bo usługa promo_shown
nie jest używana do żadnych celów
w witrynie tego innego użytkownika, zwiększa to nakład pracy związany z jego żądaniem.
Jeśli jest to niezamierzony efekt, dlaczego warto to zrobić? To jest to mechanizm umożliwiający witrynom zachowanie stanu, gdy są używane kontekstu osób trzecich. Jeśli na przykład umieścisz w swojej witrynie film z YouTube, użytkownicy widzą link do obejrzenia później. w odtwarzaczu. Jeśli użytkownik jest jest już zalogowany do YouTube, ta sesja zostanie udostępniona umieszczony odtwarzacz przez plik cookie innej firmy – oznacza to, że opcja „Do obejrzenia” przycisk będzie zapisać film za jednym razem, zamiast prosić widzów o zalogowanie się opuść ich stronę i wróć do YouTube.
Jedną z kulturowych cech sieci jest to, że jest ona zwykle otwarta
wartość domyślną. To część procesu, dzięki któremu tak wielu osobom
swoje treści i aplikacje. Jednak spowodowało to również
kwestii bezpieczeństwa i prywatności. Ataki polegające na fałszowaniu żądań z innych witryn (CSRF)
fakt, że pliki cookie są dołączone do dowolnego żądania skierowanego do danego źródła, niezależnie od tego,
kto ją zainicjował. Jeśli na przykład wejdziesz na stronę evil.example
, może ona
będzie wysyłać żądania do your-blog.example
, a Twoja przeglądarka z radością dołączy
powiązanych plików cookie. Jeśli Twój blog nie sprawdza weryfikacji tych danych
żądań, evil.example
może wywoływać działania takie jak usuwanie postów lub dodawanie
własne treści.
Użytkownicy zaczynają też lepiej wykorzystywać pliki cookie do śledzenia
aktywność w wielu witrynach. Dotychczas jednak nie było sposobu
wyraźnie określać intencję za pomocą pliku cookie. Twój plik cookie promo_shown
powinien
mogą być wysyłane tylko
z własnej listy, a plik cookie sesji w przypadku widżetu
przeznaczone do umieszczenia w innych witrynach.
w przypadku, gdy użytkownik jest zalogowany
w kontekście rozwiązań zewnętrznych.
Możesz za pomocą pliku cookie wyraźnie określić intencję, ustawiając odpowiedni atrybut SameSite.
Informacje o tym, jak rozpoznać własne pliki cookie i ustawić odpowiednie atrybuty, znajdziesz w artykule Przepisy na własne pliki cookie.