M y adlı üyeden alıntı: mesajı görüntüle
Makaledeki ilk paragrafı okudum. Session ve cookie ler tarayıcıda tutulur diyor. Gerisini okumadım ancak bu söylenen yanlış. Cookie tarayıcıda tutulur doğru ancak session sunucuda tutulur. Sadece "Session ID" yani kullanıcıya hangi session ait olduğuna dair bir cookie tarayıcıda tutulur. Örneğin sizin yukarda bahsettiğiniz
$_SESSION["login"]
değişkeni tarayıcı tarafında okunamaz veya değiştirilemez.
Buradaki güvenlik problemi; brute force gibi bir yöntemle başka bir kullanıcının session ID'si tahmin edilmeye çalışılabilir.

Daha önemli bir güvenliği açığı;
PHP'nin kaynak kodlarına bakarsanız PHP session ID'lerini kullanıcının IP adresi, sunucunun lokal saati ve bir rastgele sayının MD5 veya SHA1 algoritması ile hash'i alınarak oluşturuyor. Çok düşük bir ihtimal de olsa farklı kullanıcılara aynı ID'yi verme olasılığı olduğu görünüyor.

Yani şöyle;
Bilgisayarlar rastgele sayıları saat bilgisine birkaç matematiksel işlem uygulayarak üretirler. Yani aynı anda gelen 2 farklı rastgele sayı üretme isteğine karşılık aynı sayı verilebilir. (Buna karşı önlem varsa bilemiyorum. C++ kaynak kodlarını açıp nasıl rastgele sayı ürettiğini de incelemek gerekir)
Dolayısıyla aynı IP'den aynı anda giriş yapan 2 farklı kişiye aynı SESSION ID verilebilir.

Tabi bu çok çok düşük bir ihtimal.
Bunun bir güvenlik açığı oluşturmasını önlemek amacıyla kullanıcı login olurken session ID'sini de kaydedip bir sonraki kullanıcı login olurken "bu session ID başkasına verilmiş mi" diye kontrol yapmakta fayda var.

Bu konuda akademik çalışmalar yapıyorum bildiklerim bunlar.
Yani sonuç olarak benim kullandığım yöntem yeterli midir?