Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

PHP'de session kullanırken IP ve browser konrolü


mayfer

Öne çıkan mesajlar

selam

sorunum şu:
client tarafında cookie kullanarak login sistemi kurdum. fakat cookie'ler çalınırsa herhangi biri bu kişinin account'una rahatça giremesin diye, her session'da ip ve browser kontrolü yapmak istiyorum.

uzun aramalar sonucu hep aynı şeyi buldum, herkes $_SERVER[REMOTE_ADDR] ve $_SERVER[HTTP_USER_AGENT] adlı global variable'lardan bahsediyo. ama denedim, ve ben kendi makinamın ip'sini değiştirdiğimde, tekrar "echo $_SERVER[REMOTE_ADDR]" yapınca eski ip'mi verdi. (soracak olursanız, NAT arkasında değilim). aynı sonucu getenv('REMOTE_ADDR') da verdi.

başta bir kez kaydetmektense her çağırıldığında tekrar ip'ye bakan bir function yok mudur?
Link to comment
Sosyal ağlarda paylaş

Öyle değil, bir sütun oluşturacaksın veritabanına, oraya random olarak bir kod yazdıracan mesela 5x5g4j88 olacak, random olduğundan herkeste aşağı yukarı farklı olacak. Bu kodu cookilere atacan ve kontrol ederken kod doğru değil ise adamı otomatik olarak login etmeyecen.

Böylece cookie'lere adamların password'unu ya da password hash'ını atmamış olacan. Passwordleri güvende kalacak.

Ha illa çok güvenlik istiyorsan illa ip kontrolu yapacak diyorsan, yukarda değişkenleri vermişsin. ip'mi değiştirince eski ip'mi gösteriyor derken neyi kastediyorsun acaba tam olarak? bu olayı açarsan biraz daha yardımcı olabiliriz.

Ayrıca o random kodu ilk üye olurken mail onayında da kullanabilirsin. Öyle user agentla filan uğraşma.

[ Mesaj 26 Mayıs 2007, Cumartesi - 18:21 tarihinde, Brigand tarafından güncellenmiştir ]
Link to comment
Sosyal ağlarda paylaş

zaten php session'ın yaptığı olay aynen öyle random bi kod yaratmak, işte session id oluyor o. senin dediğinle arasındaki fark database'e yazmıyo bu durumda. ama önemli değil zaten, çünkü eğer ben o kodu cookie'lerinde saklatırsam, daha önceki problemim olan cookie çalınma durumu aynen duruyor olur.

password'leri de zaten md5 hash olarak saklıyorum, ondan passwordler de güvende zaten.

ip olayını anlatayım,
denemek için şöyle ufak bi script yazdım:
said:
echo $_SERVER[REMOTE_ADDR] . "
";
$ip = getenv('REMOTE_ADDR');
echo $ip;
?>

ilk bu sayfayı açtığımda doğru bi şekilde ip numaramı gösteriyo. hatta sorunun benim bilgisayarın ağ ayarlarından kaynaklanmadığına emin olmak için www.whatismyip.org da açtım bi kenarda. şu ana kadar gayet güzel, ikisi aynı ip numaralarını gösteriyorlar.

sonra ip numaramı değiştiriyorum. tekrar iki sayfayı birden refresh ediyorum. benim yazdığım script, hala eski ip'mi gösterirken. whatismyip.org doğru bi şekilde yeni ip'mi gösteriyor.
Link to comment
Sosyal ağlarda paylaş

1) Benim dediğim ile session id arasında fark var. Session id'si her oturum açılırken değiştirilir. Session id'si PHPSESSID cookie'sinde saklanır (default olarak) ve bu cookie sen browser'ı kapattığın anda, yani session sona erdiği anda silinir. Böylece session otomatik olarak destroy olmuş olur.

2) MD5'i ne kadar güvenli sanıyorsun? Tamam geri dönüşümü yok ama artık 6-7-8-9 (belki 10-11) haneli şifreleri bulmak kolaylaştı. Bunun için hash'ların çıktılarını gösteren veritabanları oluştu. *

3) Muhtemelen makinanı yeniden başlattığında sorunun düzelecektir. Ee bu da fazla bir sorun teşkil etmez.

Ama yinede sorununu çok az anlatmışsın. Şimdi refreshiyorum diyorsun. Firefox ile mi ie ile mi? İkisi ile de denedin mi? denemediysen den bi. Refreshlerken f5 mi yapıyorsun ctrl f5 mi? Ctrl f5 yapmıyorsan yapmayı dene. Tarayıcıyı kapatıp açtın mı yine eski ip'ni mi gösteriyor? Makinayı resetledin mi yine eski ip'ni mi gösteriyor? Sunucun nerede? localında mı?
Link to comment
Sosyal ağlarda paylaş

password güvenlik olayını geçelim zaten, md5 ötesinde bir güvenlik benim için problem değil. fakat o database'teki rastgele string fikri için yine de saol.

firefox'ta f5 refresh denedim. server localhost'ta, ama localhost yerine ip yazarak bağlanıyorum, yoksa REMOTE_ADDR 127.0.0.1 olarak çıkıyo.

refresh konusuna gelince de benim için de önemli olan tek şey basit bir refresh. refresh olmasa bile ip değiştikten sonra normal bir kullanıcıymış gibi sayfadan sayfaya gezerken, benim ip değişimini fark eden script'im bu değişimi yakalamıyordu.

sonuçta kullanıcılarıma çalışsa bile zorla ctrl+f5 yaptıramam.

diğer dediklerini şimdi deniyorum..

[ Mesaj 27 Mayıs 2007, Pazar - 03:08 tarihinde, mayfer tarafından güncellenmiştir ]
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...