• 03-10-2010, 20:18:16
    #1
    Üyeliği durduruldu
    Elimdeki 3 php kitabını da, internetteki örnekleri de inceledim. Cookie yaratmak, ulaşmak, silmek kolay. Fakat tüm örneklerde cookie ile yalnızca kullanıcı adı saklanmış ve "hoşgeldin $_COOKIE["USER"] " dedirtilmiş. Cookieler kullanıcı tarayıcısında saklandığına göre değiştirilebilir, yani bu şekilde login sistemi yapmak güvenli değil.

    Session ile oturum yönetiliyor. Gayet hoş. Fakat kullanıcı tarayıcıyı kapattığında oturum da bitiyor. Ve biliyoruz ki kaliteli sistemler cookie kullanıyor. (yani doğrusu bu)

    Birisi şu işin mantığını basitçe anlatırsa çok sevinirim.
    • Cookie ile kaydedeceğimiz değer ne olmalı ?
    • Cookie ile hem kullanıcı adı hem de şifrenin md5li halini saklayıp, geri çekerken explode ile ayırarak her sayfada db kontrolü yapmak sağlıklı mı ?
    • Yoksa cookie içine bir session id kayıt edip, yeniden çektiğimizde o sessionu mu başlatacağız ?

    Siz işi bilenler bu işi nasıl yapıyorsunuz ?

    Kod istemiyorum. Mantığından bahsetseniz yeter.
    Bu konuyu açıklığa kavuşturursak her gün bununla ilgili başlıklar da açılmaz :)
    Şimdiden teşekkür ederim, herkese iyi çalışmalar diliyorum.
  • 03-10-2010, 20:25:34
    #2
    mantığı şöyle. cookie ile kullanıcı yı tanıyabileceğiniz her türlü veriyi atabilirsiniz örnek olarak. ağaç şeklindeki menülerde javascript ile kullanıcı ağacı açmış ise işte + - tarzında kullanıcının menü pozisyonundan tutun. her türlü gerekli veri kullanılabilir. güvenli cookie kullanımında ise sitenize özel bir anahtar kullanın bunu kullanıcının üye adı veya kullanıcı tablosundaki unique bir sütün ile md5 le şifreleyin.$_COOKIE['uye'] olsun diyelim bu.

    mantığı şöyle oluyor. $_COOKIE['uye'] nin ozel bir degeri oluyor 2354234jk34kj23h4kj3h vs gibi karisik rakam ve kodlar sonracookie yi kontrol amacli su sekilde. $_COOKIE['uye_adi'] = uye1 olsun. uye1 e ait bilgileri cekiyoruz bunlari site anahtari ile harmanlayip md5 leyip 2354234jk34kj23h4kj3h boyle bir deger aliyoruz bu 2 deger tutarsa. diyoruz ki bu bizim cookie yani bir sorun yok. sitenin anahtarini sadece biz bildigimiz icin sahte cookie lere de gecit vermemis oluyoruz.
  • 03-10-2010, 20:42:36
    #3
    Üyeliği durduruldu
    hmm. anladım hocam. ama bu dediğiniz olayda cookieye iki farklı değişken ve değer atamamız gerekiyor ?
    $anahtar = md5($uyeid + "naber")
    $uye_adi = ali

    gibi ?

    sadece $anahtar verirsek db den her üyeid yi çekip formüle sokup anahtarını bulup elimizdeki cookie ile karşılaştırmamız gerekecek. bu da birazcık kasar sanırım.

    cookie de birden fazla değişken saklayabiliyor muyuz?
  • 03-10-2010, 21:02:36
    #4
    şimdi saklayabilirsin bu sadece sizin düşünce vs sisteminize göre değişecektir. Cookie Browser da saklanır yani Client bazlı olduğu için her türlü manipule işlemi yapılabilir. kontrol gerektiği yerlerde yapmanız yeterlidir. yani önemli işlemlerde, olayı çok zor olarak düşünmeyin. basit düşünün gerekli korunma yöntemlerini bilin yeter.

    yukarıda verdiğiniz örnekte doğrudur.1 den fazla cookie atmakta bir sorun yaratmaz. cookie yi atıp gerekli sezonları tekrarda açabilirsiniz.
  • 03-10-2010, 21:57:55
    #5
    Üyeliği durduruldu
    hocam örnekleme yapmak istiyorum.
    Kullanıcının adı "ali" şifresi "123" olsun. Anahtarımızda md5($username . "naber") olsun.

    iki tane cookie oluşturup birine $username,
    diğerine md5($username . "naber") vereceğim.

    kontrol ederken ilk cookieden $username i alacağım.
    md5($username . "naber") tutuyorsa kullanıcı giriş yapmış demektir.

    olay bu mudur ?
  • 04-10-2010, 03:45:30
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Levye adlı üyeden alıntı: mesajı görüntüle
    hocam örnekleme yapmak istiyorum.
    Kullanıcının adı "ali" şifresi "123" olsun. Anahtarımızda md5($username . "naber") olsun.

    iki tane cookie oluşturup birine $username,
    diğerine md5($username . "naber") vereceğim.

    kontrol ederken ilk cookieden $username i alacağım.
    md5($username . "naber") tutuyorsa kullanıcı giriş yapmış demektir.

    olay bu mudur ?
    arkadaşında dediği gibi client üzerine gönderdiğin cookie değerini senin kontrol sayfandaki değer ile karşılaştıracaksın.

    değerler doğru ise giriş kontrolü yaptırmadan yani form verilerini beklemeden session ile yeni bi oturum açtıracaksın o kullanıcıya.

    yani demek istediğim şu;

    bi if else kontrol yapısı oluştur

    if(çerez üzerindeki bilgilerin veritabanında var ise)
    { aynı kullanıcıya giriş yapmış gibi oturum başlat }
    else
    {kullanıcıyı giriş formuna yönlendir}

    bu düz mantık en basit hali, kendi güvenlik mantıgına göre, kendi kullanım şekline göre detaylar ekleyebilirsin, kontrol yapının koşul sayısını arttırabilirsin.