Session ve Cookie

 bcakir
 12 Aralık 2011
 Php

Merhaba arkadaşlar bu yazımda session ve cookie arasındaki farkları, birbirlerine göre avantajlarını ve dezavantajlarını konu alacağım. Yazıma bu kavramların tanımlarını yaparak başlamak istiyorum.

Cookie, tarayıcı ile ziyaret ettiğimiz web sayfaları tarafından harddiskimize kaydedilen ve içerisinde site ile ilgili bilgilerimizin bulunduğu şifrelenmiş bir txt dosyasıdır.

Session, belirlenmiş bir oturum süresi için kullanıcıya verilen giriş hakkıdır.

Session’da kullanıcının bilgisayarına bir şey kaydedilmediği için yani bilgiler sadece sunucuya kaydedildiği için cookie’den daha güvenlidir. Session’da ki bilgilere sadece site yöneticisi erişebilir. Bundan dolayı da session, cookie’ye göre daha güvenlidir. Özellikle daha güvenli olmasından dolayı, alışveriş siteleri session kullanmayı tercih etmektedir.

Yukarıda session’un avantajlı olduğu güvenlik konusundan bahsettik. Fakat avantajı olmasına rağmen dezavantajı olduğu durumlar da vardır. Eğer kullanıcının kaç kere sitenize girdiği gibi küçük bilgileri veritabanına kaydetmeden bilmek istiyorsanız ya da kullanıcı tarayıcıya sitenizin alan adını girdiğinde hemen içeri girmesini istiyorsanız, bunu sesion ile yapamazsınız. Tercihiniz cookie olmalıdır. Fakat cookie kullanırken çok dikkat etmelisiniz. Çünkü, kullanıcı tarafında taşındığı için içeriğine erişilebilir. Sitenizde cookie kullanacaksanız, kullanıcının şifresini kesinlikle dosyaya yazdırmamaya ve içerisinde yer alan oturum id değeri gibi bilgileri şifrelemeye özen gösterin. Yazımı sonlandırmadan önce session ve cookie’nin nasıl tanımlandığını gösteren küçük bir örnek yapayım.

//session tanımlama
session_start();
$_SESSION['oturum'] = "giris";

//cookie tanımlama
setcookie("oturum", "giris", time()+3600);

Yukarıda basitçe tanımlama işlemini de gösterdim. Son olarak söylemek istediğim; yapacağınız sitenin amacına göre hangisini kullanacağınıza ve bu kullanımdan kaynaklanacak güvenlik açıklarını gidermeye özen gösterin. Aksi halde bir çok sorunla karşılaşmanız pek muhtemel. Çünkü herkes iyi niyetli değil. Bu yazımda uygulama geliştirenlerin çok dikkat etmesi gereken, güvenlik konusunda önemli bir noktayı açıklamaya çalıştım. Yararlı olması dileğiyle.

 1.627 Okunma

Bu yazıya 7 yorum yapılmış.

  1. Siteme giriş yaparken, abone ol kutusu koymak istiyorum. Ama X den kapat dediğinde bi daha açilmasin olarak nasil ayarlaya bilirim? Kisacasi siteye ilk girdiğinde açilsin X kapat dediğinden sonrada bi daha açilmasin. Her kes cookie dosyalari kullaniyor. Ama araştirdim olmadi. yardimci olurmusunuz?

    • Abone yapacaksan cookie kullanmalı yok her geldiğinde giriş yapmasını isteyeceksen session başlamalısın. Avantajlarını ve dezavantajlarını yazdım yukarıda.

  2. “Session, belirlenmiş bir oturum süresi için kullanıcıya verilen giriş hakkıdır.”
    Session da oturum süresi belirtilemiyor sanırım.
    Bilgiler için teşekkürler.

    • Evet süre olarak bir değer girilmiyor fakat tarayıcı tamamiyle (bütün sekmeleriyle) kapatınca, session bitmiş oluyor. Belirli bir süre derken aslında bunu kastetmek istedim. Yani bir kez kullanıcı adı ve şifre girilmesi yeterli değil, her girişte tekrar oturum açılmalı.

  3. Tekrar teşekkürler, anladığım kadarıyla cookie’ler çok kullanıcılı bilgisayarlar için daha çok tehlike arz ediyor, bunun dışında meydana gelebilecek tehlikeler konusunda bilgi verirseniz çok memnun olurum, ayrıca şimdi denedim youtube (cookie ayarlarını kapattım) cookie ayarlarını açtırmaya zorluyor, bu konudaki yorumunuzu merak ediyorum.
    Saygılar.

    • Çok kişi tarafından kullanılan (internet kafe vs.) bilgisayarlar için çok daha fazla tehlike arz ediyor cookie kullanımı. Mesela bir ticaret sitesinde kullanıldığını düşünün; sizin hesabınızdan alış-veriş yapılabilir ya da kredi kartı gibi bilgileriniz kayıtlıysa, çalınabilir. Gerisini biraz tahmin edebilirsiniz. Youtube gibi hayati bilgi içermeyen sitelerin çerez kullanması çok doğal. Bu site için, en fazla youtube video listenizi silebilirler. Nasılsa, şifrenizi bilmeden mail adresinizi değiştiremezler.

  4. Ben bir cerez silme düğmesi yaptım siteme ve tıkladım. Ne oldu ise ondan sonra setcookie komutu çalışmaz oldu. Hiçbir şekilde cookie alamıyorum ve bana çok lazım. Bu setcookie nin çalışıp çalışmadığını sınama şansım var mı? Alerti denedim o da çalışmadı… echo çalışmadı. Sorun ne olabilir?

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Php
Kapat