- kullanıcı giriş yaptıktan sonra sitemde çeşitli sessionlar alıyor.
- $_SESSION["id"]; de bunlardan biri.
- cookie yaparken önce $_SESSION["id"] ile uyeler veritabanımdan mevcut id'li üyenin kullanıcı adı ve şifresini çekeceğim(şifre, karmaşıklaştırılmış halde tabi) ardından bunları cookie'ye atacağım setcookie ile.
- kullanıcı siteye bir daha uğradığında, cookie'si varsa, cookie'deki kullanıcı adı ve şifreyi çekeceğim, eğer veritabanımdaki ile eşleşirse oturum açacağım otomatik olarak.
burada her şeyin kilidi $_SESSION["id"] oluyor tabi. session değiştirilebiliyor mu? örneğin bir üye gidip bir yöntem ile $_SESSION["id"]'sini kafasına göre bir rakam yaparsa, başak bir üyeyle oturum açar. bu da güvenlik sorununa neden olur.
başka alternatif var mı?
yani adam kendi kullanıcı adı ve şifresiyle giriş yapıyor.
$_SESSION["id"] = 3 olarak atanıyor.
ardından bu adam çeşitli işlemler yaparak $_SESSION["id"] = 5 yapıyor ve artık 5 numaralı id'ye sahip kullanıcının cookie'sine sahip.
yani böyle bir şey yapabilmesi mümkün öyle mi? o zaman session id ile bu işi götürmemem gerekiyor
edit: ya da uye veritabanına yeni bir sütun açayım. ve her yeni giriş yapıldığında (cookie'siz, elle) oraya çoook rastgele bir değer atasın. o değeri de session'a atayım. ve yukarıdaki kodda $_SESSION["id"] ile birlikte $_SESSION["rastgele"] yi de kontrol ettireyim.
kullanıcı tarafında tutulan sadece session id'dir. (senin belirlediğin değişken değil bu.)
session değişkenleri de (değiştirilmediyse) server tarafında tutulur. senin atayacağın $_SESSION['id'] 'yi değiştiremez yani.
ama kullanıcı nick ve hash'lenmiş şifresini direkt kullanıcıdan almak (cookie olarak olsa da) güzel bir iş değil. şu cevap işinize yarar heralde:
stackoverflow.com