IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

1Beğeni(ler)
  • 1 Post By Desmont

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 15 Ocak 2012, 14:59   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cookie




Şu ana kadar formlar için bilgi alma mekanizması olarak browserin adres satırından bilgi aldık ve kaydettiğimiz dosyalardan bilgi alık.Şu anda cookie lerden bilgi almaya başlayacağız.Bu cookielerin "çerez" ne işe yaradıklarını bu siteden bir örnek yardımıyla açıklayacağız.
Mesela bu kullanıcı kayıt sistemi yaptınız ve kullanıcıları bir veritabanında topladınız.Bu kullanıcılar login olduklarıda sadece bir tek sayfaya girecekler.Oda login olunan sayfaya.Bu işi daha da ilerletmek için yani kullanıcının değişik sayfalarda da gezinmesini isteyebiliriz.Tabii bu işi hidden gizli HTML takılarıyla yapmamız mümkün ama bu güvenlik açısından iyi bir yöntem değildir.
Cookie'lerin çalışma sitillerini kısaca açıklamak gerekirse; php programını çalıştıran bir kullanıcının bilgisayarına bir adet txt uzantılı metin dosyası atılır.Bu dosyayı gerektiğinde sadece bu cookie yi atan program okuyabilir.
Cookie'lerin yaşama şanslarınıda programcı belirleyebilir.İsterse bir ay boyunca cookie kişisel bilgisayardan silinmez.İsterse 10 dakika sonra cookie browser tarafından silinir.Cookie'ler Windows işletim sisteminde Windows dizininin altında bulunan cookie klasöründe toplanırlar."C:\Window\Cookie\" Bu cookieleri nerelerde kullanabiliriz diye sorarsak?
Yukarda da söylediğimiz gibi kullanıcı kayıt scriptlerinde, anketlerde yapmış olduğumuz seçenekleri bir ziyaretçinin sadece bir seçeneğe oy verebilmelerini sağlama, sayaçlarda siteyi ziyaret eden kişilerin sürekli olarak browserin yenile "Refresh, F5" butonunu tıklayıp sayacımızın artmasını engelleyebiliriz.Cookie'lerin atılması şöyle olur: setcookie("bilgisayara giden cookienin başlığı","cookie değeri", time() , "/" );
Cooikie'ler görüldüğü gibi setcookie komutu ile gönderiliyor.Bu komutu biraz açarsak; bu komutun içerisine ilk değer cookie nin adını teşkil etmektedir.İkinci değer ise buraya genellikle bir değişken konur cookie nin değeri girilir.Üçüncü kısmında ise cookie nin bilgisayarda kalacağı süreyi belirliyoruz.Burada time komutuyla birlikte sayı değeri gireriz.Bildiğiniz gibi time() komutu saniye cinsinden zamanı verir.Şimdi bir cookie denemesi yapalım.
setcookie("Aspetonline", "PHP", time()+600, "/");
Burada biz Aspetonline adında vir cookie yi PHP değeriyle 600 saniye uyarınca yani 10 dakika boyunca web sayfamızın kök dizinine işe yarayacak bir cookie attık.Bu cookie yi mesela [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adında bir dosyadan attık.Bu [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden itibaren kulllanılır.Eğer bir üst klasörden itibaren kullanılmak isteniyorsa son değişkene "/klasör_adi" gibi klasör isimlerini koyabiliriz.
setcookie("CGI", "anket", time()+3600*24, "/anket");
Burada da CGI adında bir cookie gönderdik.Değerini anket yaptık.Zaman kısıtlamasını time komutuna önce 3600 yani 1 saat yaptık.Sonrada çarpı 24 yaparak cookie nin süresini 24 saat olarak belirledik.Daha sonrasında da anket klasöründe geçerli kıldık.
Peki bu cookie leri nasıl okuruz diye sorulduğunda şu cevabı veririz. $HTTP_COOKI_VARS[cookieninadi] değişkeni ile cookieleri okutmamız mümkün.Bir örnek verelim.Yukardaki örnekleri eğer çalıştırdıysanız şu komutu çalıştırın.
print $HTTP_COOKIE_VARS[Aspetonline];
Bu komutu çalıştırdığınızda karşınıza PHP yazısı çıkacaktır.Yine dizi değişkenine anket yazarsanız bu sefer karşınıza anket yazısı çıkacaktır.Ama şu ayrıma dikkat etmeniz gerekir.Cookie'yi hangi server adıyla gönderdiyseniz o server adıyla okutabilirsinzi.Yani kişisel bilgisayarınızda bu cookie leri çalıştırdığınızda 3 değişik adres vardır.Bunlar [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ve [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Bu adınız değişkenlidir.Bunu Denetim masasında bulunan ağ simgesindeki tanımlamadaki bilgisayarın adı girer ve istendiğinde değiştirilebilir.Bu adreslerden herhangibiriyle atılan cookie diğer adreslerle okunamaz.Zaten cookie lerin içerisini atığınızda şöyle bir yazıyla karşılaşırsınız:
Aspetonline
PHP
mehmet/
128
182249344
29446161
1995417792
29433923
*

Burada ilk satır cookie nin adını, 2. satır cookie nin değerini, 3. satırda cookie nin hangi klasörde geçerli olacağını gösterir.Diğer satırlar da ise cookie nin geçerlilik zamanını, atılış zamanını saniye cinsinden yazar.Bunlar sizi ilgilendirmez.Şimdi bir örnek vererek bu bahsi kapayalım.
//login.php
if(
$kullanici_adi=="admin" && $sifre=="sifre" ){
setcookie("kullanici", "admin", time()+3600, "/")
print "Şu anda şifreli alandasınız.";
}
else{
print "Kullanıcı adı veya şifreniz yanlış";
}
?>
// diğer şifreli sayfalarda kullanılabilecek kod
if(!
$HTTP_COOKIE_VARS[kullanici]=="admin"){
print "Siz şuanda login değilsiniz.";
}
else{
//Buraya login olan kullanıcıların görmesini istediğiniz sayfayı giriniz.
}
?>

Cookie'ler de gerekli olan güvenlik önlermlerini sıralamamız gerekirse: Eğer yukardaki gibi kullanıcı kaydı yaptığınız sitelerde cookie nin süresini kısıtlı tutmalısınız.Siteden çıkış yapan bir bölüm eklemelisiniz.Buda cookie yi silme anlamına gelir.Cookie gerçi program tarafından silinmez ama öldürülebilir.Yani içerisine ilk atanan değeri değiştirerek öldürebiliriz.Bunuda cookie nin içerisinde bulunan 2. değeri mesela boş bırakabilirisniz.
setcookie("kullanici", "...", time()+3600, "/")
Burada benim kullandığım yöntemi kullanarak cookie nin içerisine 3 nokta koyabilirisniz.Cookielerde bir güvenlik önlemide cookie lein içerisine asla ve asla kullanıcı bilgileri koymamanızdır.Bunun yerine uzun karakterli tercihen 32 karakterli rasgele şifre kullanarak bu şifreyi sınatmanızdır.Bu rasgele şifre yapmanın yöntemi de:
$resgele = md5 (uniqid (""));
$random = substr ("$rasgele", 0, 32);

Burada ki gibi random değişkeni her seferinde 32 karakterli bir şifre üretecektir.Bu tür şifre kullanmamızın nedeni: Mesela bir kullanıcı internet kafeye giderek sizin sitenize girdi ve login oldu.Sonrada çıkış butonunu tıklamadan kafeden ayrıldı.Bunun üzerine bir başka kullanıcı bu bilgisayara girip C:\Windows\cookie\ klasöründen güvenlik önlemi alınmadan gönderilen cookie ye bakar ve içerisinde kullanıcı adı ve şifrenin girildiğini görür ve sitenize bu kişide giriş yapar.Bunun için asla cookie lerin içerisine kullanıcı bilgilerini girmeyiniz.



 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
cookie


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık