Bugünki yazımızda cookie ve sessionlarla ilgili bilgiler vereceğiz.

Cookie Nedir ?

Öncelikle cookie tanımı yapalım. Cookies diğer adıyla çerezler bilgisayarınıza herhangi bir çerez kullanan siteye girdiğinizde gönderilen verilerdir.Geçici ve sürekli olarak ikiye ayrılırlar. Geçici cookie browser kapandığında otomatikmen silinir. Sürekli cookie ise cookie yi yazan programcı tarafından belirlenen süre geçtikten sonra kendini siler. Siz kendiniz de bu cookieler i silebilirsiniz.Cookiler bilgisayarınızın websitesi tarafından doğrulanmasını sağlar. Buna bağlı olarak o websitesine otomatik giriş sağlayabilirsiniz. Örneğin facebook’a giriş yaptınız ve giriş yapmadan önce beni hatırla kutucuğunu (checkbox)’ını işaretlediyseniz. Sonraki girişinizde direk facebook ana sayfanıza erişebilmeniz için bu cookieler kullanılır. Bazı reklam verenler sizlerin hangi reklam kategorileriyle ilgilendiğinizi öğrenmek içinde cookieleri kullanır. Bu cookieler sadece sizin bilgisayarınıza özel olarak hazırlanıp gönderilmiştir ve bilgisayarınızın depolama alanında saklı tutulur.

Session Nedir ?

Sessionlar bilgisayarların aksine giriş bilgilerinizi sunucularda (server)’larda tutar. Bu sebepten ötürü çerezlerden daha güvenlidir. Sessionlar da bilgisayarınıza çerez oluşturup gönderir ancak bu session olayında gönderilen çerez hashlenmiş (şifrelenmiş) bir şekilde gönderilir. Tarayıcınız kapandığında kendini otomatik siler. Session genellikle sanal sepet uygulamalarında kullanılmaktadır. Eğer kullanıcıya oturumun tarayıcısı kapanana kadar oturumunu açık göstermek istiyorsanız da session kullanabilirsiniz. Sunucu hacklenmediği sürece o bilgilere ulaşabilmek için kullanıcının bilgisayarındaki hashlenmiş verileri md5 vs şifresini kırmak gerekir. Bu hashlenmiş veriyi kırmak yıllar süreceği için böyle bir işle uğraşılmaz.

Dinamik bir web siteniz olduğunu düşünün ve sitenize de binlerce kişi günlük aktif giriş yapıyor. Bu kullanıcıları sitenizde tanımak, birbirinden ayırt etmek ve için kullanılan yöntemler cookie ve sessionlardır. Bu yöntemle yapabileceğiniz bazı işlemleri şöyle sıralayabiliriz :

  • Kullanıcı üye işlemleri
  • Alışveriş sepeti işlemleri
  • Kullanıcı bilgilendirme işlemleri
  • Kullanıcı tanıma işlemleri
  • Kullanıcı tarafından daha önceden belirtilmiş olan bilgilere göre hazır işlemler…

Yukarıdaki bilgiler doğrultusunda Php’de sanki cookie ve sessionlar aynı şeymiş gibi gelebilir, ama birbirinden çok farklıdırlar.Bu farklardan da en önemlilerini şöyle sıralayalım :

  • En büyük fark güvenlik kısmıdır. Sessionlar çok daha fazla güvenlidir.
  • Cookie ile kaydedilen değerler tarayıcıda açık halde bırakılır, bu yüzden o bilgisayarı kullanan herkes o değerleri görebilir, bu yüzden çok güvenli değildir.
  • Session ile kaydedilen değerler de tarayıcıya kaydedilir ama sadece PHPSESSID olarak gözükür, yani değerlerin içerikleri görünmez. İçerikler ve değerler sadece sunucu tarafında görünür ve okunabilir.Bu yüzden çok güvenlidir.
  • Sessionlar $_SESSION süper globali ile hem tanımlanabilir hem de okunabilir.
  • Cookieler $_COOKIE süper globali sayesinde okunabilir, ama tanımlamak için mutlaka ek bir fonksiyona gerek vardır.
  • Cookielerin son kullanma tarihini yani aktif kalma süresini kullanıcı belirleyebilir, bu da bir nevi güvenliği arttırmak içindir. Ama sessionlarda bir yaşam süresi belirlenemez. Çünkü cookieler tarayıcı kapansa bile aktif kalırken sessionlar tarayıcı kapandığı anda oturum sona erer ve tüm bilgiler silinir.