Domain

Çerez Kapsamı: Alt Alan Adları Arasında Oturum Paylaşımı

Çerezlerin alan adı kapsamı, alt alan adları arasında oturum paylaşımı, güvenlik nitelikleri ve sorun giderme. Çerez Kapsamı: Alt Alan Adları Arasında Oturum…

Çerez Kapsamı: Alt Alan Adları Arasında Oturum Paylaşımı
İçindekiler
  1. Kapsam Nasıl Belirlenir?
  2. Oturum Paylaşımı Kurmak
  3. Ayırmanın Gerektiği Durumlar
  4. Güvenlik Nitelikleri
  5. Çerez Sayısı ve Boyut
  6. Sorun Giderme
  7. Baştan Doğru Planlamak
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Alt alan adları arasında oturumu nasıl paylaşırım?
  11. Kullanıcı içeriğini neden ayırmalıyım?
  12. Çıkış yaptırdığım hâlde oturum neden kapanmıyor?
  13. Çerezlerin performansa etkisi var mı?

Çerez Kapsamı: Alt Alan Adları Arasında Oturum Paylaşımı

Kullanıcı ana sitenizde giriş yaptı, sonra mağaza alt alan adına geçti ve tekrar giriş yapması istendi. Ya da tam tersi: yalnızca blog için tanımladığınız bir çerez, tüm alt alan adlarınıza yayıldı.

Bu yazı, çerezlerin alan adı kapsamını ele alıyor.

Kapsam Nasıl Belirlenir?

Bir çerezin hangi adreslerde geçerli olacağı iki alanla tanımlanır:

Alan İşlevi
Alan adı Hangi adreslerde gönderilir
Yol Hangi klasörlerde gönderilir

Alan adı tanımının davranışı sezgisel değildir: bir çerez ana alan adı için tanımlandığında tüm alt alan adlarında geçerli olur, ama alt alan adı için tanımlandığında yalnızca orada ve onun altında geçerli olur.

Yani kapsam yukarıdan aşağıya yayılır, aşağıdan yukarıya yayılmaz.

Bu asimetri hem oturum paylaşımının hem istenmeyen sızıntının kaynağıdır.

Oturum Paylaşımı Kurmak

Alt alan adları arasında tek oturum istiyorsanız:

  1. Çerezi ana alan adı kapsamında tanımlayın.
  2. Oturum deposu ortak olsun.
  3. Güvenlik ayarlarını tutarlı yapın.
  4. Çıkışın her yerden çalıştığını test edin.

İkinci madde çok atlanan bir gerekliliktir: çerez paylaşılsa bile her alt alan adı kendi oturum deposunu kullanıyorsa, kullanıcı çerezi taşır ama karşı taraf o oturumu tanımaz.

Bu durumda kullanıcı yine giriş ekranıyla karşılaşır ve sorunun çerezde olmadığı anlaşılamaz.

Dördüncü madde ise güvenlik açısından kritiktir. Bir yerden çıkış yapan kullanıcının tüm alt alan adlarından çıkmış olması beklenir.

Ayırmanın Gerektiği Durumlar

Her zaman paylaşım istenmez:

  • Kullanıcı içeriği barındıran alt alan adları.
  • Üçüncü taraf uygulamalar.
  • Test ve geliştirme ortamları.
  • Farklı güvenlik seviyesindeki bölümler.

Birinci madde ciddi bir güvenlik riskidir: kullanıcıların kendi içeriğini yayımlayabildiği bir alt alan adına ana alan adı kapsamındaki oturum çerezi gönderiliyorsa, o içerik oturumu ele geçirebilir.

Bu nedenle kullanıcı içeriği barındıran adresler, mümkünse tamamen ayrı bir alan adında tutulmalıdır.

İkinci madde benzer bir mantığa dayanır. Kontrolünüz dışındaki bir uygulamanın oturum çerezinizi görmesi istenmez.

Üçüncü madde ise kazaları önler. Test ortamının canlı oturumları görmesi hem risk hem karışıklık üretir.

Güvenlik Nitelikleri

Kapsam kadar diğer nitelikler de önemlidir:

Nitelik Etkisi
Yalnızca şifreli bağlantı Şifresiz istekte gönderilmez
Betik erişimine kapalı Sayfa kodu okuyamaz
Aynı site kısıtı Dış sitelerden gönderilmez
Ön ek zorunlulukları Ek güvence sağlar

İkinci satır oturum çerezleri için zorunlu sayılmalıdır: betik erişimine kapalı bir oturum çerezi, sayfaya sızan zararlı bir kodun oturumu çalmasını engeller.

Bu tek ayar, en yaygın saldırı senaryolarından birini büyük ölçüde etkisiz kılar.

Üçüncü satır ise alt alan adı davranışında bir incelik taşır. Aynı site kısıtı, alt alan adlarını genellikle aynı site sayar — yani bu ayar alt alan adları arasındaki paylaşımı engellemez.

Çerez Sayısı ve Boyut

Teknik sınırlar da hesaba katılmalıdır:

  1. Alan adı başına çerez sayısı sınırlıdır.
  2. Toplam boyut sınırlıdır.
  3. Her istekte gönderilirler.

Üçüncü madde performans etkisi yaratır ve genellikle fark edilmez: ana alan adı kapsamında tanımlanan çerezler, görsel ve stil dosyası isteklerinde bile gönderilir ve her istek gereksiz yere büyür.

Bu, statik dosyaları ayrı bir alan adından sunmanın klasik gerekçesidir. Çerez taşımayan bir adres, daha hafif istekler üretir.

Birinci madde ise çok sayıda alt alan adı ve çok sayıda çerez kullanan yapılarda sınıra dayanabilir. Sınır aşıldığında tarayıcı eski çerezleri sessizce siler.

Sorun Giderme

Belirti Olası neden
Alt alan adında oturum yok Kapsam dar tanımlanmış
Oturum beklenmedik yerde var Kapsam geniş tanımlanmış
Çıkış her yerden çalışmıyor Silme kapsamı farklı
Ara sıra oturum düşüyor İki farklı çerez çakışıyor

Üçüncü satır çok yaşanan bir hatadır: bir çerezi silmek için tanımlandığı kapsamın birebir aynısını kullanmak gerekir — farklı bir kapsamla silme denemesi çerezi silmez ve oturum açık kalır.

Dördüncü satır ise en kafa karıştırıcı senaryodur. Aynı adla hem ana alan adı hem alt alan adı kapsamında iki çerez varsa, hangisinin gönderileceği öngörülemez.

Bu durumda tarayıcı geliştirici araçlarından çerez listesini kapsam bilgisiyle birlikte incelemek gerekir.

Baştan Doğru Planlamak

  • Hangi alt alan adlarının paylaşacağını belirleyin.
  • Kullanıcı içeriğini ayrı alan adına alın.
  • Statik dosyalar için çerezsiz adres kullanın.
  • Çerez adlarını ortamlara göre ayırın.

Dördüncü madde geliştirme sürecini rahatlatır: test ve canlı ortam aynı çerez adını kullanıyorsa, iki ortam arasında geçiş yapan geliştirici sürekli oturum kaybı yaşar.

Ortam adını çerez adına eklemek bu sorunu tamamen ortadan kaldırır.

Alt alan adı yapınızı planlarken mevcut DNS kayıtlarınızı görmek için alan adı kayıt hizmeti kapsamındaki sorgulama ekranından kontrol yapabilirsiniz.

Sonuç

Çerez kapsamı asimetrik çalışır: ana alan adı için tanımlanan çerez tüm alt alan adlarına yayılır, tersi olmaz. Oturum paylaşımı istiyorsanız çerezi ana alan adı kapsamında tanımlayın ama oturum deposunun da ortak olduğundan emin olun — aksi hâlde çerez taşınır, oturum tanınmaz. Kullanıcı içeriği barındıran adresleri mutlaka ayırın: o içerik, kendisine gönderilen oturum çerezini ele geçirebilir. Ve oturum çerezlerini betik erişimine kapatın.

Sıkça Sorulan Sorular (SSS)

Alt alan adları arasında oturumu nasıl paylaşırım?

Çerezi ana alan adı kapsamında tanımlayın — kapsam yukarıdan aşağıya yayılır. Ama tek başına yetmez: her alt alan adı kendi oturum deposunu kullanıyorsa kullanıcı çerezi taşır, karşı taraf oturumu tanımaz ve yine giriş ekranıyla karşılaşır.

Kullanıcı içeriğini neden ayırmalıyım?

Kullanıcıların kendi içeriğini yayımlayabildiği bir alt alan adına ana alan adı kapsamındaki oturum çerezi gönderiliyorsa, o içerik oturumu ele geçirebilir. Bu adresler mümkünse tamamen ayrı bir alan adında tutulmalıdır.

Çıkış yaptırdığım hâlde oturum neden kapanmıyor?

Çerezi silmek için tanımlandığı kapsamın birebir aynısını kullanmanız gerekir. Farklı bir kapsamla silme denemesi çerezi silmez ve oturum açık kalır. Ayrıca aynı adla iki farklı kapsamda çerez varsa hangisinin gönderileceği öngörülemez.

Çerezlerin performansa etkisi var mı?

Var. Ana alan adı kapsamındaki çerezler görsel ve stil dosyası isteklerinde bile gönderilir ve her istek gereksiz yere büyür. Statik dosyaları çerez taşımayan ayrı bir adresten sunmak bu yükü ortadan kaldırır.