
Jaka jest różnica między local.test.comi .local.test.com? Zrzut ekranu pochodzi z Chrome.

Jaka jest różnica między local.test.comi .local.test.com? Zrzut ekranu pochodzi z Chrome.
Odpowiedzi:
local.test.combędzie używany dla domeny, podczas gdy .local.test.combędzie również używany dla subdomen.
local.test.comnie będzie dotyczył x.local.test.com, ale .local.test.comdotyczy zarówno do, jak local.test.comi do x.local.test.com?
Początkowa kropka oznacza, że plik cookie jest ważny również dla subdomen; niemniej jednak ostatnie specyfikacje HTTP (RFC 6265) zmieniły tę regułę, więc nowoczesne przeglądarki nie powinny przejmować się początkową kropką. Kropka może być potrzebna w starej przeglądarce implementującej przestarzały RFC 2109.
Na przykład, jeśli wartością atrybutu Domena jest „example.com”, klient użytkownika umieści plik cookie w nagłówku Cookie podczas wysyłania żądań HTTP do example.com, www.example.com i www.corp.example. com. (Należy zauważyć, że początkowy% x2E („.”), Jeśli występuje, jest ignorowany, mimo że ten znak jest niedozwolony, ale końcowy znak% x2E („.”), Jeśli jest obecny, spowoduje, że program użytkownika zignoruje atrybut. )
Z artykułu Kompletny przewodnik po domenach cookie i dlaczego prefiks www sprawia, że Twoja witryna jest bezpieczniejsza :
Wniosek
Chociaż definicje są nieco inne, możemy uprościć to dla każdej z tych implementacji, ponieważ:
Inne warte uwagi uwagi:
Jeśli w pliku cookie nie jest ustawiona żadna domena, plik cookie powinien pasować tylko do dokładnej nazwy hosta żądania. [UWAGA: różni się to od zwracania pliku cookie Set-Cookie z domeną bez kropki!] Brak subdomen, brak dopasowań częściowych. Oznacza to po prostu nieuwzględnianie atrybutu domeny - ustawienie pustego atrybutu domeny jest nieprawidłowe. Niestety, wydaje się , że Internet Explorer traktuje to jako nazwę hosta wraz z dowolnymi subdomenami .
Przy ustawianiu domeny w ciasteczku bezpiecznym wyborem jest, aby była poprzedzona kropką, np. .Erik.io. Plik cookie będzie pasował do wszystkich subdomen.
Ustawienie domeny cookie bez poprzedzającej kropki, jak erik.io, jest nieprawidłowe w implementacjach RFC 2109 i spowoduje to samo zachowanie, co w przypadku poprzedniej kropki w innych implementacjach. Nie ma sposobu, aby ograniczyć plik cookie do konkretnej, wyraźnie określonej domeny, bez uwzględnienia poddomen.
We wszystkich dokumentach RFC określona domena plików cookie musi być zgodna z bieżącą nazwą hosta, zgodnie z normalnym dopasowaniem. Ustawienie pliku cookie dla www.erik.io w odpowiedzi z erik.io jest nieprawidłowe, ponieważ plik cookie z domeną www.erik.io nie pasuje do erik.io, przy czym ta pierwsza jest bardziej szczegółowa.
W RFC 6265, wielkość liter domen jest jawnie mniejsza podczas analizowania nagłówka Set-Cookie.
Wiodąca kropka w „.local.test.com” to sposób, w jaki chrome przegląda pliki cookie z ustawieniem „Domain = local.test.com” (lub „Domain = .local.test.com”, co jest tym samym).
Definicje Set-Cookie bez „Domena = coś” wyświetla domenę (= host) bez początkowej kropki.
Tak więc wiodąca kropka w chrome nie odzwierciedla tego, czy wiodąca kropka została użyta z serwera, ale czy ten plik cookie miał w definicji „Domena = coś” z serwera. (A gdyby tak było, plik cookie zostanie również wysłany do subdomen).
Tak przynajmniej pokazują moje testy. Chrome powinien ułatwić czytanie, na przykład wyświetlić dokładny ciąg, który zdefiniował plik cookie i kiedy został odebrany.