Giriş sistemi ve oturumlar (php)

3 Cevap php

Ben bir giriş sayfası ve kayıt sayfası oluşturduk ve şimdi sayfaları korumak ve bu kullanıcı bilgileri belirli göstermek sayfaları var şifre için kullanmak istiyorum.

Kullanıcının kullanıcı kimliği bir oturum değişkeni yapman depolama Bunu yapmanın güvenli ve doğru yolu olurdu?

Bir kullanıcı farklı bir kimliği oturum değişkeni değiştirmek ve başka bir kullanıcının bilgilerine erişmek ve kullanıcıları giriş bilgilerini yazmak zorunda değil ne kadar kolay olurdu?

EDIT: Her sayfasından sonraki kullanıcı kimliğini gönderme daha güvenli olur?

3 Cevap

Ben bir kullanıcı kodu (ya da sunucu üzerinde kod) onlara izin vermedikçe $_SESSION bilgileri manipüle olabilir, bu yüzden deli gibi bir şey yapmıyoruz ki herhangi bir şekilde haberdar değilim iken ...

foreach($_POST as $key=>$value) { // DON'T DO THIS
    $_SESSION[$key] = $value; // DON'T DO THIS!
} // WHY ARE YOU DOING THIS!?

Eğer kullanıcı $_SESSION değişkenleri size verir ne olursa olsun veri sadece koyuyorduk böyle bir şey yapmak gerekir. Veritabanı gibi, oturuma yazma çıkış biçimi olarak düşünülmeli ve bunu koymak ne sterilize edilmelidir (ve o koymak nerede) buna göre.

Böyle çılgınca bir şey yapıyoruz sürece Yani, (olabilir, çok daha ince olabilir), ben oturum değişkeni değişen kullanıcı hakkında endişelenmenize gerek sanmıyorum. Muhtemelen oldukça bir son kullanıcı değil birisi oturum bilgi manipüle threats of a shared hosting environment endişelenmenize gerek olabilir.

hijack a session in PHP için bir kaç basit yolu vardır gibi Ne kadar güvenli değil, oturum anahtarıdır.

Ben, Essential PHP Secutiry bağlantı oldum kitabı göz atmanızı öneririz. Bu jeneralize olabilir ve herhangi bir web dev işi akılda tutulmalıdır birçoğu birkaç temel PHP güvenlik kavramları, çok küçük ve basit (ama tam) açıklama.

İşte bir article on session security bulunuyor

Eğer sadece PHP betikleri şifresini böyle bir şekilde kullanıcı adı şifrelemek o zaman sanırım güvenli olmalıdır.

Ben burada, varsayılan oturum davranışları hakkında konuşacağım: oturumları bir MD5 sağlama toplamı (32 alfanümerik karakter) olarak ayarlanmış bir çerez "PHPSESSID" dayanmaktadır. PHP tarayıcıdan bu çerezi kabul eder, ve sunucu tarafında oturum verilerini yüklemek için kullanır. Istemci oturumunda verileri değiştirmek için doğrudan bir yol var, ancak kendi oturum kimliği belirtmek için olsun.

Sen (istemci IP, vb kontrol SSL) ek güvenlik katmanları ekleyebilirsiniz, ama ben senin çerez biliyorum varsayılan olarak ben etkili sizin gibi giriş yapabilirsiniz. Bildiğim kadarıyla ne kadar iyi, bu güvenlik diğer katmanları çok bağlıdır olduğunu "kolay" olarak: trafik koklama kişidir, malware, vb yüklü yok

Gibi araçları Suhosin oturum güvenliğini artırmak için çalışır.