25 Mart 2017 Cumartesi
Twitter

ASP.NET'te Çerez (Cookie) Kullanımı

Çerezlerle ilgili detaylı bilgileri bu yazıda bulabilirsiniz.

Giriş

Bazı kaynaklarda, HTTP Cookie, Web Cookie, Browser Cookie, Session Cookie olarak da karşımıza çıkan COOKIE'ler (çerezler), internet sitelerinin bilgisayarımıza kaydettiği küçük metin dosyalarıdır.

Genel kullanım amacı, siteye gelen ziyaretçileri, bir sonraki ziyaretlerinde hatırlamaktır. Pratikte çerezler, web server tarafından tarayıcıya gönderilen ve client'ta kaydedilen ufak metin dosyalarıdır.

Kullanım amacı

Çerezler, kullanıcı kimlik doğrulama ve tanımlama, kullanıcı tercihleri, alışveriş sepeti, vb. bilgileri client tarafında tutmak için kullanılır.

Ayrıca, bilgilerin bir sayfadan başka bir sayfaya taşınması için de kullanılır.

Güvenli midir?

Aslında direkt olarak evet ya da hayır şeklinde cevap vermek zordur. Çerezde tutulan bilgiler, kullanıcının hesabına giriş yapan biri tarafından rahatlıkla çalınabilir. Çerezler birer yazılım / program, virüs ya da çalıştırılabilir uygulama değildirler. Virüs ya da malware taşıyamazlar. Öte yandan, kullanıcı aktivitelerini saklamak için kullanılabilirler.

Çerez kullanımı

1. yol - HttpCookies sınıfını kullanarak

Yazma

HttpCookie musteriCookie = new HttpCookie("Musteri");
musteriCookie.Value = TextBox1.Text;
musteriCookie.Expires = DateTime.Now.AddHours(1);
Response.Cookies.Add(musteriCookie);

Okuma

string adsoyad = Request.Cookies["Musteri"].Value;

2. yol - Direkt Response'u kullarak

Yazma

Response.Cookies["Musteri"].Value = TextBox1.Text;
Response.Cookies["Musteri"].Expires = DateTime.Now.AddDays(1);

Okuma

string adsoyad = Request.Cookies["Musteri"].Value;

3. yol - Aynı isimle birden fazla değer tutmak

Yazma

Response.Cookies["Musteri"]["AdSoyad"] = TextBox1.Text;
Response.Cookies["Musteri"]["DogumYeri"] = TextBox2.Text;
Response.Cookies["Musteri"]["DogumTarihi"] = TextBox3.Text;
Response.Cookies["Musteri"]["AnneAdi"] = TextBox4.Text;
Response.Cookies["Musteri"]["BabaAdi"] = TextBox5.Text;
Response.Cookies["Musteri"].Expires = DateTime.Now.AddDays(1);

Okuma

string adSoyad = Request.Cookies["Musteri"]["AdSoyad"];
string anneAdi = Request.Cookies["Musteri"]["AnneAdi"];
string babaAdi = Request.Cookies["Musteri"]["BabaAdi"];

Çerezleri silme

Silme işlemi için 3 konuya dikkat etmek gerekir. 1) Öncelikle çerezin var olup olmadığını test etmek gerekir, 2) Sayfayı tekrar yüklemek gerekir. 3) Çerezi silmek için .Expires özelliğini kullanmalıdır.

if (Request.Cookies["Musteri"] != null)
{
    Response.Cookies["Musteri"].Expires = DateTime.Now.AddDays(-1);
    Response.Redirect("ISTEDIGINIZSAYFA.aspx");
}

Eğer yukarıdaki kod işinizi görmezse şu kodu da deneyebilirsiniz:

if (Request.Cookies["Musteri"] != null)
{
    HttpCookie musteriCookie = Request.Cookies["Musteri"];
    musteriCookies.Expires = DateTime.Now.AddDays(-1);
    Response.Cookies.Add(musteriCookie);
    Response.Redirect("ISTEDIGINIZSAYFA.aspx");
}

HttpCookie sınıfı özellikleri

  • Domain: Çerezin ait olduğu domain.
  • Expires: Çerezin son bulma tarihi.
  • HasKeys: Çerezin alt değerleri varsa True yoksa False döndürür.
  • Name: Çerezin adı.
  • Path: çerez ile iletmek için sanal yol ayarlar.
  • Secure: True ise sadece güvenli bağlantı ile okunur / yazılır (https://)
  • Value: Çerezin değeri.
  • Values: Çerezin taşıyacağı birden fazla değer varsa kullanılır.

Çerezlerin sınırları

  1. En fazla 4096 byte bilgi taşıyabilir
  2. Her bir websitesi için en fazla 20 çerez oluşturulabilir
  3. Kullanıcı, tarayıcı özelliklerinden çerez kullanımını kapatabilir.

Kullanıcı, tarayıcısının cookie özelliğini kapattığını (veya kapatmadığını) şu yolla anlayabiliriz:

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Browser.Cookies)
    {
        // Çerez desteği var
    }
    else
    {
        // Çerez desteği yok
    }
}

Diğer hususlar

  • Kullanıcının bilgisayarındaki her bir farklı tarayıcı için farklı çerezler tutulur. Yani IE'de kaydedilen bir çerez, MF veya GC tarafından okunamaz.
  • Maks. 4K lık bilgi tutabildiğini unutmamalı!
  • Güvenliği de düşünüp bilgileri şifreleyerek kaydetmek her zaman mantıklıdır.
  • Bilgisayara format atıldığında veya tarayıcı geçmişi temizlendiğinde çerezler de silinir.

Herkese kolay gelsin.

Değerlendirme

Yazım dilinin sadeliği ve anlaşılabilirliği Puan: 2,07 (22 oy)
Yazıdaki kodların kalitesi Puan: 1,89 (21 oy)
İhtiyaca cevap verme Puan: 2,07 (24 oy)
Tavsiye edilebilirlik Puan: 2,08 (22 oy)
Genel değerlendirme Puan: 2,06 (22 oy)
Puanlamalar 5 üzerindendir.
  • Site Yorumları
  • Facebook Yorumları Facebook Yorumları
Yeni yorum yaz Toplam: 5, Onay bekleyen: 0.
  1. İbrahim Teoman

    Hocam Cookie leri kullanıyoruz tamam diyelim şifre saklayacağız O zaman ne yapabiliriz şifremizin tekrar şifrelenmesi lazım bunu nasıl yapabiliriz

  2. sanana lan

    çok sexi progralar yazıyosunuz takipçinizimm......

  3. Devrim Altınkurt

    Evet aynen öyle. Beni hatırla olayı tamamen çerezlerle alakalı bir konu. Eğer çereze atacağın bilgiyi bir başkasının görmesini istemiyorsan tabii ki şifrelemelisin. bkz: http://linkx.me/Bi3j5

  4. ahmet metin

    hocam anlatım için teşekkürler fakat kafamın takıldığı bir şey var, beni hatırla seçenekleri olur sitelerde bu olay çerezler ile mi yapılıyor ve güvenlik için mutlaka şifreleniyor mu bu tür uygulamalar.