Jaka jest różnica między local.test.com
i .local.test.com
? Zrzut ekranu pochodzi z Chrome.
Jaka jest różnica między local.test.com
i .local.test.com
? Zrzut ekranu pochodzi z Chrome.
Odpowiedzi:
local.test.com
będzie używany dla domeny, podczas gdy .local.test.com
będzie również używany dla subdomen.
local.test.com
nie będzie dotyczył x.local.test.com
, ale .local.test.com
dotyczy zarówno do, jak local.test.com
i 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.