Oturum Kontrolü:Farklı Bir Sorgulama
Normalde bir kullanıcı adı ve parola, form vasıtasıyla alınır ve "select * from uyeler where kullanici='omer' and parola='parola'" şeklinde sorgulatılıp kontrol işlemi yapılır. Eğer öyle bir üye varsa oturum açma işlemi başarılı olur.
Bugün bir site ile ilgilenirken aklıma farklı bir yöntem geldi. Üyeler tablosunda kontrol adında yeni bir hücre oluşturdum. Bu hücre içeriğine, kayıt sırasında, kullanıcı adı ve parola değerinin md5 ile şifrelenmiş halinin aktardım. Kullanıcı oturum açma işlemleri sırasında ise şöyle bir sorgu kullandım:
$kontrol = md5($kullanici.$parola); "select * from uyeler where kontrol='$kontrol'"; // Kodlar mantıksal olarak yazılmıştır, yazım hatası mevcuttur.
Böylelikle güvenlik sorunu ortadan kalkmış oluyor (sanırım) ve az da olsa karmaşadan kurtulmuş oluyoruz(bence) :).
Yani şifreyi hashlamak yerine kullanıcı adı ve şifreyi birleştirip hash lıyoruz.Yöntem mantıklı ama ayrı bir alan yaratmak veritabanını gereksiz yere büyütmez mi?
Comment by Alper Yazar — February 6, 2008 @ 2:29 pm
Eğer sistem için kullanışlı olacaksa getirdiği yükler göz ardı edilebilir. Ancak sistem için kullanışlı olmayacaksa gereksiz bir özellik olur.
Mesela bu fikir, bir işle uğraşırken aklıma geldi. Uğraştığım işe uyguladığımda, ufak bazı değişikliklerden sonra kullanışsız olduğunu anladım. Çünkü işin içine bilgi güncelleme vs girince fazladan bu sefer kod yazmak gerekiyordu.
Ancak kişisel siteler için uygun. Mesela bir yönetici paneli oluşturup kişi bilgi girişi yapacak. Giriş sistemi için boş yere güvenlik konuları ile ilgilenmeden basit bir şifreleme ile kullanıcı kontrolü yapabilir bu şekilde.
Comment by Ömer Ücel — February 6, 2008 @ 2:38 pm