folder Tahribat.com Forumları
linefolder Web sitesi Güvenliği, DOS - DDOS Saldırıları...
linefolder Web Uygulamalarında Login Sistemleri İçin Cookie Veya Session Kullanımı



Web Uygulamalarında Login Sistemleri İçin Cookie Veya Session Kullanımı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    sağlam bir login sistemi yazmak için uğraşıyorum iki gündür. cookie ile session'u başta beraber kullandım ancak cookie kullanırken session kullanmak ne derece mantıklı bilemiyorum çünkü aynı işi yapabiliyor. tabi arka tarafta session veri saklıyor ama onun gerekliliğini de henüz kavrayabilmiş değilim.


    sadece cookie kullanarak güvenli açıksız bir sistem yapılabilir mi soruna cevap arıyorum aslında. cookie'min genel hattı şöyle:
    USER_ID_NO | COOKIE_EXPIRATION_TIMESTAMP | HASH_KEY
    cookie'nin son geçerlililik tarihini, kullanıcının id numarasını ve şifresini php'nin hash_hmac fonksiyonu ile md5'liyorum. böylece cookie'nin son kullanım tarihi değiştirilemiyor, kullanıcı aynı şekilde id no'sunu değiştirerek başka bir kullanıcının cookie'sine sahip olamıyor ve hash_hmac fonksiyonu ile de şifreleme özelleştiriliyor (unique key ile).


    diğer bir opsiyon olarak da kullanıcı giriş yaptığında active_users tablosuna rasgele bir key oluşturarak satır girerim ve her seferinde burdan kontrol edilir. ama bunun performansı biraz düşüreceği kaanatindeyim o yüzden emin olamadım.


    kullanıcının opsiyonuna göre cookie'yi tarayıcı kapanınca ya da 2 hafta sonra sil gibi ayarlayabiliyoruz malum ve kullanıcı da hash key sayesinde cookie'nin son kullanım tarihini değiştiremiyor. siz neler düşünüyorsunuz peki yeterli mi sadece cookie?


    . . .. . ... .
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    sadece çerezler hiç bir zaman güvenli değil hocam

    extra güvenlik istiyorsan

    ip

    ekran çözünürlü

    tarayıcı bilgileri vs. bilgileride karşılaştır

    eğer cookie eşleşiyorsa bide bunlardan kontrol geçir

    herhangi biri farklı ise tekrar login olmasını iste

    ayrıyetten eğer sisteminde para dönecekse kesinlikle login için session kullanmanı öneririm.

    sonuç olarak konu güvenlik ise session ile cookie kıyaslanamaz


    snnyk.com - code is poetry all that i know...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    itfaiyeci
    itfaiyeci's avatar
    Kayıt Tarihi: 02/Eylül/2005
    Erkek

    Konuya dair bi bilgi birikimim yok ama vbulletin, mybb gibi hazır scriptlerin login sistemlerini kurcalarsan fikir verir diye düşünüyorum.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    cookie'ler kullanıcıların makinelerinde

    session'lar serverlarda tutulur

    bu farktan guvenlik ile ilgili en buyuk fikri alabilirsin.

    bunun yanında cookie'yi md5'larsan sitede kullanırken çözmen gerekecek:) var mı boyle bi algoritman? varsa bana da ver:)

    eğer cookie bilgilerinin md5'larını db'de tutup bilgisayarda onunla ilişkilendirecek bir şeyler yaparsan bu sefer kullanıcı cookie'deki o ilgili yeri değiştirdiğinde işler değişecek. kısacası cookie'ler kullanıcılar tarafından mudahale edilebilen şeyler, session'larsa müdahale edilemeyen şeyler(modifiye anlamında) oldukları için
    session'sız olmaz o iş. ama cookie'ler tabii ki yararlı, kullanıcı için bazı bilgileri tutmak, siteye tekrar giriş yaptığında kullanmak, ya da siteden otomatik çıkış tarihi vs. gibi gerekli ama önemsiz işlerde kullanmak için.

    bi kullanıcı giriş yaptığında id'si ya da ismini asla cookie'lerde tutmazsın, sessionlar bunun gerekli ve yeterli

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Marsel
    crafty
    crafty's avatar
    Kayıt Tarihi: 19/Eylül/2006
    Erkek

    hoca md5 ile şifreliyorsun da arkadaşın da dediği gibi güvenlik istiyorsan sessionlar daha iyi...


    Kasnak yuvarlandı elek oldu, eski orospular melek oldu...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    cidden bende anlamadım md5 kullanıp tekrar nasıl okuyorsun?


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    beyler evet öyle bir algının olduğunu biliyorum session'larla ama genel olarak insanlar server'da tutuluyor daha güvenli diyorlar. ama gerisi yok.

    benim yazdığım class'da md5'liyorum ama kullanıcı adı ve cookie'nin son kullanım tarihi ni şifrelemeden hash'ın yanına koyuyorum. ve bu hash üye id, cookie son kullanım tarihi ve şifrenin class dosyasında belirtilen bir unique key ile md5'lenmesinden oluşuyor. kullanıcı tekrar siteye geldiğinde adamın üye id'sini cookie'den alıyorum. şifre zaten bende, cookie'den son kullanım tarihini de çekiyorum ve aynen oluştururken kullandığım algoritmayla şifreliyorum. eğer eşleşirse de girmesine izin veriyorum. işlem bundan ibaret.

    eğer beni hatırla özelliği olacaksa cookie şart değil mi? cookie şart ise kullanıcı beni hatırlaya tıklayıp giriş yaptığında hem session açacağım adama hem de cookie vereceğim. e ama cookie zaten session'un işini o noktada görüyor, tarayıcı kapandığında da kendini sil diyebiliyorum. bir daha session'a neden gireyim ki?

    büyük sistemlerde kullanacağım evet bu class'ı ve bana session'u savunan arkadaşlar, kullanıcı şöyle yapar hash'ı eşleştirir girer sisteme girer ama session'da onu yapamaz diyebilir mi?

    not: wordpress'i inceledim, aynen session diye bir olay yok.

    not2: session kullanımında tmp/ klasörüydü sanırım sessionların tutulduğu yer. bu bana özel mi yoksa server'da hepsi bir yerde mi tutuluyor? malum shared hosting'de göte gelmeyelim. :)


    . . .. . ... .
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    angels_demos
    angels_demos's avatar
    Kayıt Tarihi: 03/Haziran/2006
    Erkek

    Buremba bunu yazdı:
    -----------------------------

    beyler evet öyle bir algının olduğunu biliyorum session'larla ama genel olarak insanlar server'da tutuluyor daha güvenli diyorlar. ama gerisi yok.

    benim yazdığım class'da md5'liyorum ama kullanıcı adı ve cookie'nin son kullanım tarihi ni şifrelemeden hash'ın yanına koyuyorum. ve bu hash üye id, cookie son kullanım tarihi ve şifrenin class dosyasında belirtilen bir unique key ile md5'lenmesinden oluşuyor. kullanıcı tekrar siteye geldiğinde adamın üye id'sini alıyorum. şifre zaten bende, cookie'den son kullanım tarihini de çekiyorum ve aynen oluştururken kullandığım algoritmayla şifreliyorum. eğer eşleşirse de girmesine izin veriyorum. işlem bundan ibaret.

    eğer beni hatırla özelliği olacaksa cookie şart değil mi? cookie şart ise kullanıcı beni hatırlaya tıklayıp giriş yaptığında hem session açacağım adama hem de cookie vereceğim. e ama cookie zaten session'un işini o noktada görüyor, tarayıcı kapandığında da kendini sil diyebiliyorum. bir daha session'a neden gireyim ki?

    büyük sistemlerde kullanacağım evet bu class'ı ve bana session'u savunan arkadaşlar, kullanıcı şöyle yapar hash'ı eşleştirir girer sisteme girer ama session'da onu yapamaz diyebilir mi?

    not: wordpress'i inceledim, aynen session diye bir olay yok.

    not2: session kullanımında tmp/ klasörüydü sanırım sessionların tutulduğu yer. bu bana özel mi yoksa server'da hepsi bir yerde mi tutuluyor? malum shared hosting'de göte gelmeyelim. :)


    -----------------------------

    valla bir boka yaramıyor cookie güvenlik açısından.basit şeyleri kaydedersin anca.  session olmadan oturum açamazsın wordpresste olmaması imkansız. sessionda hatlar karışabiliyor bazen 

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    angels_demos bunu yazdı:
    -----------------------------

    Buremba bunu yazdı:
    -----------------------------

    beyler evet öyle bir algının olduğunu biliyorum session'larla ama genel olarak insanlar server'da tutuluyor daha güvenli diyorlar. ama gerisi yok.

    benim yazdığım class'da md5'liyorum ama kullanıcı adı ve cookie'nin son kullanım tarihi ni şifrelemeden hash'ın yanına koyuyorum. ve bu hash üye id, cookie son kullanım tarihi ve şifrenin class dosyasında belirtilen bir unique key ile md5'lenmesinden oluşuyor. kullanıcı tekrar siteye geldiğinde adamın üye id'sini alıyorum. şifre zaten bende, cookie'den son kullanım tarihini de çekiyorum ve aynen oluştururken kullandığım algoritmayla şifreliyorum. eğer eşleşirse de girmesine izin veriyorum. işlem bundan ibaret.

    eğer beni hatırla özelliği olacaksa cookie şart değil mi? cookie şart ise kullanıcı beni hatırlaya tıklayıp giriş yaptığında hem session açacağım adama hem de cookie vereceğim. e ama cookie zaten session'un işini o noktada görüyor, tarayıcı kapandığında da kendini sil diyebiliyorum. bir daha session'a neden gireyim ki?

    büyük sistemlerde kullanacağım evet bu class'ı ve bana session'u savunan arkadaşlar, kullanıcı şöyle yapar hash'ı eşleştirir girer sisteme girer ama session'da onu yapamaz diyebilir mi?

    not: wordpress'i inceledim, aynen session diye bir olay yok.

    not2: session kullanımında tmp/ klasörüydü sanırım sessionların tutulduğu yer. bu bana özel mi yoksa server'da hepsi bir yerde mi tutuluyor? malum shared hosting'de göte gelmeyelim. :)


    -----------------------------

     

    valla bir boka yaramıyor cookie güvenlik açısından.basit şeyleri kaydedersin anca.  session olmadan oturum açamazsın wordpresste olmaması imkansız. sessionda hatlar karışabiliyor bazen 


    -----------------------------

    oturum işine gelince haklısın adam giriş yaptığında her sayfada cookie kontrol edip onu karşılaştırmak biraz yorabilir. onun yerine cookie'yi okutup session açıp onun üzerinden gitmek daha mantıklı gibi geldi. ama güvenlik açısından bir eksiğini somut biçimde gösterirsen sevinirim. algoritmam da yukarda.


    . . .. . ... .
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    demek istediğini bi daha okuyunca anladım hocam =)

    ozaman şu şekilde yap

    $ozeldeger = "sd89f0sd0f8s0d8fd08hg98htf09j8d98f9w8dfs90gh8deflşkertg";

    md5($parola).$ozeldeger;

    cereze sadece parolanın md5 ini yazdır

    login yaparkende çerezden parolayı al ve ozel deger ile birleştirip db den sorgulattır

    bu şekilde yaparsan hanhangi bi güvenlik sorunun olmaz ( kullanıcı çerezlerinin çalınması harici )

     


    snnyk.com - code is poetry all that i know...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    snnyk bunu yazdı:
    -----------------------------

    demek istediğini bi daha okuyunca anladım hocam =)

    ozaman şu şekilde yap

    $ozeldeger = "sd89f0sd0f8s0d8fd08hg98htf09j8d98f9w8dfs90gh8deflşkertg";

    md5($parola).$ozeldeger;

    cereze sadece parolanın md5 ini yazdır

    login yaparkende çerezden parolayı al ve ozel deger ile birleştirip db den sorgulattır

    bu şekilde yaparsan hanhangi bi güvenlik sorunun olmaz ( kullanıcı çerezlerinin çalınması harici )

    -----------------------------

    o kısımda sorun yok gibi gözüküyor da session id'leri de zaten cookielerde saklamıyor mu? ordaki session id'sini alan bir kişi herhangi bir yere koyaladığında o sessiona sahip olabiliyor gördüğüm kadarıyla. gene olay cookie'de kullanığım kapıya çıkıyor yani. sessionu çalmak isteyen gene çalıyor. :S

    çözünürlük ve ip (durduk yere değişebiliyor bazen) değişken şeyler onları baz almak biraz sakıncalı olabilir diye düşünüyorum. tarayıcı + PHPSESSION cookie'sini kullanmakdan başka pek bir yol yok sanırsam.

     


    . . .. . ... .
Toplam Hit: 3247 Toplam Mesaj: 20