2009-01-24 28 views
5

Bir kimlik denetimi kitaplığı bir model görünümü denetleyicisi şekilde yazarken gitmenin en iyi ve en güvenli yolu nedir?PHP'de kimlik doğrulama için en iyi yol

Zor zamanlar geçirmemi sağlayan şeyler, kullanıcıların aktivitelerini takip etmeleri ve kullanıcılarını bir çerez veya oturumları veritabanında depolamak yoluyla hatırlamaktır.

Şimdiden teşekkürler :).

+0

Mümkün olduğunda varolan bir kimlik doğrulama çerçevesini yeniden kullanmanız gerekir, çünkü gerçekten karmaşıktır. Örneğin, hem çerçeve-agnostik hem de veritabanı-agnostik olan https://github.com/delight-im/PHP-Auth adresine bir göz atın. – caw

cevap

3

Bunu gerçekleştirmenin en kolay yolu PHP SESSIONS ile.

sadece session_start(); komut dosyanızın başlangıcına yakın ve kimlik doğrulama verilerinizi tutmak için $ _SESSION genel dizisine erişebilirsiniz.

Sunucunuzun yapılandırmasına bağlı olarak, $ _SESSION içinde depolanan tüm veriler yalnızca barındırıldığı sunucuda (birkaç istisna dışında) kullanılabilir. Geçici bir dizinde, memcached, hatta bir veritabanında kaydedilecek şekilde yapılandırabilirsiniz.

İstemci ve sunucunuz arasında iletilen tek şey bir "oturum anahtarı" dır. Anahtar, çerez veya URL yeniden yazılanlar tarafından aktarılabilir (bunlar, başlangıç ​​dosyası çıktı arabelleği tarafından şeffaf olarak işlenir). Eğer oturumları kullanmak istiyorsanız

+1

Bu konuda yanlış anlaşıldım. – UnkwnTech

+0

Teşekkürler. Ancak, kullanıcıların etkinliklerini nasıl takip edebilirim ve kullanıcılara nasıl 1 ay boyunca oturumda kalmaları için bir seçenek sunabilirim? Veritabanında, oturumunda veya çerezde hangi şeyleri saklamalıyım? Ve her şeyin yolunda olup olmadığını kontrol etmenin en iyi yolu nedir? –

+0

Bu, ek bir karma ile bir çerezde açıkça ayarlanmış bir şey olurdu, daha sonra DB'de IP depolanır, eğer kullanıcı farklı bir ip üzerinden oturum açarsa veya çerezdeki karma, db'de biriyle eşleşmezse, kullanıcı gerektirir tekrar giriş yapmak için. – UnkwnTech

4

, sen session fixation ve session hijacking gibi saldırılara karşı onları güvence altına var.

Her ikisini de engellemek için yalnızca kimliği doğrulanmış isteklerin oturumu kullanmasına izin verdiğinden emin olmanız gerekir. Bu genellikle, müşteri ile seansta mümkün olduğu kadar çok spesifik (muhtemelen benzersiz) bilgiler zincirleme yoluyla yapılır. Ancak bazı bilgiler her istekte (IP adresi gibi) değişebileceğinden, iyi olanı bulmak zor olabilir.
Bu nedenle, Trending olarak belirtilen yöntemin kullanılması yararlıdır.

Bir başka iyi koruma önlemi periyodik olarak oturum kimliğini değiştirmektir. Böylece geçerli bir oturum kimliğine yapılan saldırı süresi daha küçüktür.

İlgili konular