Oturum güvenliği Hızlı soru

3 Cevap php

Hey guys, ben güvenlik için benim siteyi tarıyor ve ben olmayan kullanıcıların istekleri göndermek ve bilgi göndermek için mümkün olduğunu fark ettim, bu yüzden tüm bilgiler yazılarda giriş kontrolleri koymaya karar verdim. Her kullanıcı için bir oturum değişkeni $_SESSION['id']=md5(uniqid()); in md5(uniqid()); tarafından oluşturulan ve daha sonra aktif kullanıcılar altında bir veritabanında bu depolamak bir session id tutmak için iyi bir yol olup olmadığını merak ediyordum o kullanıcı. Bir kullanıcı bilgileri eklemek çalıştığında, sonra onların $ _SESSION ['id'] değişkeni adı da $ _SESSION ['username'] eşittir veritabanında birine eşit olduğunu doğrulayın. Bu adamlar sizin fikirleriniz nelerdir? Şimdiden teşekkürler!

3 Cevap

Bir çözüm kullanıcı oturum açtığında "loggedin" falan denir bir oturum değişkeni ayarlamak ve (SQL çağrıları yapmadan önce session_start () çağrı veritabanı güncelleme yaptığınızda değişken ayarlanmış olduğundan emin olmak, ve değişkeni kontrol olur $ _SESSION Eğer sorguları göndermeden önce). Onlar zaten sorun anladığım oturum bir kullanıcının oturumu çalmak sürece kullanıcılar dışı oturum Bu şekilde, veritabanını güncellemek değil, bu basit çözüm gibi geliyor.

Bu zaten SessionId ile PHP oturumları içine inşa edilmiştir ile geldi çözüm gibi geliyor bana. PHP yeni bir oturum otomatik olarak diğerlerinin oturumları oturumu tanımlayan rasgele bir dize oluşturur. Gerçi, yanlış anlama olabilir.

Neden $ _SESSION ['username'] ayarlanmış olup olmadığını kontrol etmek için sadece değil?

Ben sitelerde daha önce yaptık, ama bu, kullanıcıların birden fazla eşzamanlı oturum için izin için bir özelliği daha bir güvenlik önlemi daha az bulunuyor. Gerçek anahtar yetki gerektiren bir işlem yapıyorsanız zaman geçerli bir oturum belirteci kontrol etmek, ve oturum tanımlama kaçırıldı olmayacak böylece HTTPS üzerinden sitenize çalıştırmaktır.