Arasındaki fark nedir local.test.com
ve .local.test.com
? Ekran görüntüsü Chrome'dan alınmıştır.
Arasındaki fark nedir local.test.com
ve .local.test.com
? Ekran görüntüsü Chrome'dan alınmıştır.
Yanıtlar:
local.test.com
etki alanı .local.test.com
için kullanılırken, alt etki alanları için de kullanılacaktır.
local.test.com
geçerli olmayacak x.local.test.com
, ancak .local.test.com
hem için hem de geçerli local.test.com
olacak x.local.test.com
mı?
Baştaki nokta, çerezin alt alanlar için de geçerli olduğu anlamına gelir; yine de son HTTP spesifikasyonları (RFC 6265) bu kuralı değiştirdi, bu nedenle modern tarayıcılar baştaki noktayı önemsememelidir. Kullanımdan kaldırılan RFC 2109'u uygulayan eski tarayıcı nokta gerekli olabilir.
Örneğin, Domain özniteliğinin değeri "example.com" ise, kullanıcı aracısı, example.com, www.example.com ve www.corp.example'a HTTP isteklerinde bulunurken Cookie başlığına çerezi dahil edecektir. com.tr. (Varsa, baştaki bir% x2E ("."), Bu karaktere izin verilmese bile yok sayılır, ancak sondaki% x2E (".") Varsa, kullanıcı aracısının özniteliği yok saymasına neden olur. )
Makaleden Çerez alan adlarına ilişkin kesin kılavuz ve bir www öneki web sitenizi neden daha güvenli hale getirir :
Sonuç
Tanımlar biraz farklı olsa da , bu uygulamalardan herhangi biri için aşağıdaki gibi basitleştirebiliriz :
Diğer değerli gözlemler:
Hiçbir etki alanı çerezine ayarlandığında, çerez gereken sadece istek tam ana bilgisayar adını eşleşecek. [NOT: Bu, noktasız bir etki alanına sahip bir Set-Cookie döndürmekten farklıdır!] Alt etki alanı yok, kısmi eşleşme yok. Bu, yalnızca etki alanı özniteliğinin dahil edilmediği anlamına gelir - boş bir etki alanı özniteliği ayarlamak geçerli değildir. Ne yazık ki, Internet Explorer bunu herhangi bir alt etki alanıyla birlikte ana bilgisayar adı olarak ele alıyor gibi görünüyor .
Çerezde bir etki alanı ayarlarken, güvenli seçim, .erik.io gibi bir noktadan önce gelmesidir. Çerez, tüm alt alan adlarıyla eşleşecektir.
Erik.io gibi bir tanımlama bilgisi etki alanının öncül noktası olmadan ayarlanması, RFC 2109 uygulamalarında geçersizdir ve diğer uygulamalarda önceki nokta ile aynı davranışı üretecektir. Alt alanlar dahil edilmeden bir çerezi belirli bir açıkça belirlenmiş alanla sınırlandırmanın bir yolu yoktur.
Tüm RFC'lerde, belirli bir tanımlama bilgisi etki alanı, normal eşleşme başına geçerli ana bilgisayar adıyla eşleşmelidir. Erik.io'dan gelen bir yanıtta www.erik.io için bir çerez ayarlamak geçerli değildir, çünkü www.erik.io etki alanına sahip bir çerez erik.io ile eşleşmez, eskisi daha spesifiktir.
RFC 6265'te, Set-Cookie üstbilgisi ayrıştırılırken etki alanları açık bir şekilde daha küçük harflerle gösterilir.
".Local.test.com" da baştaki nokta, Chrome'un "Etki Alanı = local.test.com" kümesiyle (veya "Etki Alanı = .local.test.com" aynı olan) çerezleri nasıl görüntülediğidir.
"Etki alanı = bir şey" içermeyen Set-Cookie tanımları, etki alanını (= ana bilgisayar) başında nokta olmadan görüntüler.
Dolayısıyla, kromdaki baştaki nokta, sunucudan baştaki bir noktanın kullanılıp kullanılmadığını değil, bu tanımlama bilgisinin sunucudan gelen tanımında "Etki Alanı = bir şey" olup olmadığını yansıtır. (Ve eğer varsa, tanımlama bilgisi alt alan adlarına da gönderilecektir).
En azından testlerim bunu gösteriyor. Chrome bunu okumayı kolaylaştırmalıdır, örneğin, çerezi tanımlayan dizeyi ve ne zaman alındığını tam olarak görüntülemelidir.