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. bylece 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 . 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 gre 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? . . .. . ... .

demek istediğini bi daha okuyunca anladım hocam =) ozaman şu şekilde yap $ozeldeger = "sd89f0sd0f8s0d8fd08hg98htf09j8d98f9w8dfs90gh8deflşkertg"; md5 .$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 snnyk.com - code is poetry all that i know...

: 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 grü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/ klasrü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 gte 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

: demek istediğini bi daha okuyunca anladım hocam =) ozaman şu şekilde yap $ozeldeger = "sd89f0sd0f8s0d8fd08hg98htf09j8d98f9w8dfs90gh8deflşkertg"; md5 .$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 o kısımda sorun yok gibi gzü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 grdüğü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 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. . . .. . ... .

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 - ...

hacı tbtdeki sessionu nasıl kaydettiğini bir sylesene Kasnak yuvarlandı elek oldu, eski orospular melek oldu...

: Buremba bunu yazdı: hocam sessionun içeriğine erişemem evet ama session id'mi değiştirebiliyorum. eğer adam localimde ise alırım ASPSESSION cookie'sini kendime eklerim ve çalışır. kendi session içeriğimi değiştirmemiş olurum ama aldığım idnin sessionuna sahip olurum. ikinci bir ihtimal olarak da sadece cookie değerim olur olur benim. bu cookie'nin içeriği ilk mesajda yazdığım gibi olur. hash kısmında ip'yi browser'ı kullanıcı adını şifreyi ve expiration date'ini md5lerim. kullanıcı girer siteye her yenilemede cookieye bakar eşleştiririm ve doğru çıkarsa o baştaki kullanıcı adıyla giriş yaptırırım. cookie başka bilgisayarda da geçerli olmaz bu şekilde. içeriğe erişebiliyorsun evet ama bunu nasıl aşabilirsin hocam? hacı problem şurada başlıyor ben senin cookie ni alıp ip ve exp datesini değiştirip md5 ile şifreler dosyanı düzenlerim ve o şekilde kullanırım ;) hacı hepsini yan yana koyup php'deki hash_hmac fonksiyonu ile şifreliyorum. işin içinde hash_hmac'deki unique key var ve nasıl yan yan koyduğumu bilmiyorsun. :) peki hangisi daha hızlıdır? . . .. . ... .

: hacı şyle bişi var şimdi session daha hızlı çalışır. cokie ile sürekli kontrol etmen gerekecek ama sessionda bir kez yükliceksin adam gidene kadar hafızada kalacak. sen direk md5 ile şifrelicem deyince ben ona gre yazdım hacı... hocam iki farklı versiyonunu yazdım 10000 kere dngüyle çalıştırdım ve cookie ile çalışan 5 kat hızlı olarak sonuç verdi. :) dediğine gelince cookie browser header'larının içinde olduğundan ip almayla veya browser bilgilerini almakla eşdeğer. sadece fazladan bir select sorgusu yapıyorsun şifreyi çekmek için. eğer cache'e alırsan o da sorun olmuyor. session dosyaları ise ramde filan tutulmuyor olacak ki sen sessionu çektiğinde cookiedeki PHPSESSION değerini alıyor ve tmp/ dizinine gidip ordan bilgiyi çekiyor. fena taktım ben bu işe. :) eğer twitter'ı filan incelersen zel birşey yapmamışlarsa şayet onlar da session kullanmıyorlar. şimdi wordpress'e mail atıyorum ben de neden session kullanmıyorsunuz diye. bakalım ne cevap gelecek. :) . . .. . ... .

: crafty bunu yazdı: hacı tbtdeki sessionu nasıl kaydettiğini bir sylesene napcan? :) sessionu kaydetmiyorum sessionun idsini çektiği cookie'yi çekiyorum. o da ASP_xxx şeklinde kaydolmuş bir cookie. ve ip ile bağlantılı bir id ki bu başka ip'deki bilgisayara eklemeye çalışırsan sonuç alamayacağın anlamına geliyor bu. :) hacı naptın sen :D benim demek istediğim başka bişeydi. herneyse konuya geri dnelim. hoca bak şimdi sen rneğin tbtye bağlandığın andan itibaren sadece sana zel bir sessionid atanır. ve oturumun sonlanana kadar da bu bilgisayarında kayıtlı kalır. bu kullanıcının sen olduğunu doğrulamak amaçlıdır. sen bunu başka bilgisayara aktardığın an ip değiştiği için zaten otomatik olarak çalışmaz. iceriği zaten şifrelidir. ayrıca bunu daha güvenli yapmanın yolları da var. rneğin kullanıcının ip adresinin yanında tarayıcı zelliklerini vs. de kontrol ettirebilirsin. her durumda cookielerden cok daha güvenliklidir. Kasnak yuvarlandı elek oldu, eski orospular melek oldu...

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 dnecekse 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...

hacı şyle bişi var şimdi session daha hızlı çalışır. cokie ile sürekli kontrol etmen gerekecek ama sessionda bir kez yükliceksin adam gidene kadar hafızada kalacak. sen direk md5 ile şifrelicem deyince ben ona gre yazdım hacı... Kasnak yuvarlandı elek oldu, eski orospular melek oldu...

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

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 oldukları içinsession'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

: 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 grü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/ klasrü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 gte 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 gsterirsen sevinirim. algoritmam da yukarda. . . .. . ... .

: hacı tbtdeki sessionu nasıl kaydettiğini bir sylesene napcan? :) sessionu kaydetmiyorum sessionun idsini çektiği cookie'yi çekiyorum. o da ASP_xxx şeklinde kaydolmuş bir cookie. ve ip ile bağlantılı bir id ki bu başka ip'deki bilgisayara eklemeye çalışırsan sonuç alamayacağın anlamına geliyor bu. :) . . .. . ... .

tahribat'ta bile session id'yi başka bir tarayıcıya kopyaladığımda sorunsuz çalıştı. ip'de çalışır mı bilmiyorum onu da deneyeceğim şimdi. wordpress sistemler de default olarak session'u kullanmıyormuş bylece onaylamış oldum. açık kaynak olduğu için tmp klasrü de bazı shared hosting'lerde diğer kullanıcılar tarafından kolayca erişildiği için güvenlik açısından pek bir artısını grememişler sanırım. . . .. . ... .

hocam sessionun içeriğine erişemem evet ama session id'mi değiştirebiliyorum. eğer adam localimde ise alırım ASPSESSION cookie'sini kendime eklerim ve çalışır. kendi session içeriğimi değiştirmemiş olurum ama aldığım idnin sessionuna sahip olurum. ikinci bir ihtimal olarak da sadece cookie değerim olur olur benim. bu cookie'nin içeriği ilk mesajda yazdığım gibi olur. hash kısmında ip'yi browser'ı kullanıcı adını şifreyi ve expiration date'ini md5lerim. kullanıcı girer siteye her yenilemede cookieye bakar eşleştiririm ve doğru çıkarsa o baştaki kullanıcı adıyla giriş yaptırırım. cookie başka bilgisayarda da geçerli olmaz bu şekilde. içeriğe erişebiliyorsun evet ama bunu nasıl aşabilirsin hocam? . . .. . ... .

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 grü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/ klasrü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 gte gelmeyelim. :) . . .. . ... .

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...

: hocam sessionun içeriğine erişemem evet ama session id'mi değiştirebiliyorum. eğer adam localimde ise alırım ASPSESSION cookie'sini kendime eklerim ve çalışır. kendi session içeriğimi değiştirmemiş olurum ama aldığım idnin sessionuna sahip olurum. ikinci bir ihtimal olarak da sadece cookie değerim olur olur benim. bu cookie'nin içeriği ilk mesajda yazdığım gibi olur. hash kısmında ip'yi browser'ı kullanıcı adını şifreyi ve expiration date'ini md5lerim. kullanıcı girer siteye her yenilemede cookieye bakar eşleştiririm ve doğru çıkarsa o baştaki kullanıcı adıyla giriş yaptırırım. cookie başka bilgisayarda da geçerli olmaz bu şekilde. içeriğe erişebiliyorsun evet ama bunu nasıl aşabilirsin hocam? hacı problem şurada başlıyor ben senin cookie ni alıp ip ve exp datesini değiştirip md5 ile şifreler dosyanı düzenlerim ve o şekilde kullanırım ;) Kasnak yuvarlandı elek oldu, eski orospular melek oldu...