Kullanıcı kimlik doğrulaması

5 Cevap php

I What should a developer know before kimlik kamuya açık bir web sitesi? bina izleyin duyuyorum, o zaman ben ne seçenekler var?

Ben PEAR hiç kullanmamış, ve ben başlamak üzere değilim. I phpGALC hakkında okuyun ama bunu denemek için henüz var.

Ben bir kullanıcı ve onun çok esnek değil yanında, yapamayacağı ne karar bir tek Tinyint değeri kullanarak büyük bir hayranı değilim içeri kimlik doğrulama hakları / erişim seviyesi tekme yaptıktan sonra. Geçenlerde ben her kullanıcı türü erişimi ne tür erişim belirlediğiniz bir bölümü sistem yazdım, ama daha iyi bir şey var mı?

Eğer bir dil, PHP5 istiyorum.

5 Cevap

I'm not a big fan of using a single tinyint value which desides what a user can and cannot do, besides its not very flexible.

Duruma göre değişir ... Eğer bir tamsayı olarak ya da bir saklayıcısında olarak değerini kullanarak atıfta musunuz?

Sadece (5 kullanıcı tüm seviyesinin 1-4 kullanıcıların yeteneklerini, artı biraz daha sahip seviyesi) bir sayı olarak kullanıyorsanız, o zaman evet, çok esnek değil.

Bir saklayıcısında olarak kullanıyorsanız, size herhangi bir kullanıcı için herhangi bir kombinasyon içinde açık ya da kapalı olabilir yetenekleri 8 (setleri) verir. Ben esnek derim. 8 yetenekleri sizin için yeterli değilse Ve, bir smallint (16 bit / yetenekleri) için tinyint (8 bit) değiştirmek için Önemsiz, int daha fazla olmalıdır (32 bit) veya Bigint (64 bit), hemen hemen her uygulama için yeterli çoğumuz yazmak olasıdır.

ACL ve Auth ben bu şu anda üzerinde çalışıyorum şeylerdir. Ben şu anda CakePHP kullanıyorum, ve ACL için modül ve kimlik doğrulaması yapmak için basit bir yolu (basit de olsa) kapsamlı bir sağlar. Ben de cevaplar ilgileniyorum.

Ben topladık neler:

  • , Kara ve beyaz listeler arasında özellikle farkı girişini doğrulamak için öğrenin
  • Dikkatle e-posta doğrulama deseni düşünün
  • Eğer (sinir bozucu küçük aksan, tilde ve benzeri isimler, örneğin Añagaza veya ALERTA içinde yol almak) destek olacak ne dil düşünün.
  • Roll-your-kendi ya da önceden oluşturulmuş?
  • ACL: basit tutmak ya da seni bütün yutmak.
  • Konuda dikkatli CSRF and XSRF!

Doğrulama oldukça basittir. Yetkilendirme, bir ACL ya da her neyse yoluyla, karmaşık olabilir.

Doğrulama genellikle sadece kayıtlı kimlik bilgileri ile bir kullanıcı adı ve şifre eşleştirme. Sadece tuz kullanılarak SSL ve karma şifreleri kullanın.

Yetkilendirme bir canavar olabilir ve çözüm gereksinimlerine bağlıdır. Sen PhpGALC ve Zend Framework ACL bileşeni deneyebilirsiniz. Hepsi farklı adlandırılmış olmasına rağmen her iki seçenek de roller, kaynaklar, ve isteğe bağlı ayrıcalıklara sahip. Zend ACL (kuralları kodunuzda basitçe tanımlanabilir ve bir veritabanı gerektirmez) daha basit ve geneldir. Lütfen roller, kaynaklar, ve ayrıcalıklar statik değilse, o zaman Zend ACL ile size veri deposundan ACL doldurmak için kod yazmak gerekir. PhpGALC en büyük avantajı, bir web GUI olmasıdır. Ben GUI beceriksiz buldum, ama sen gerçekten ACL anlamak sürece, bu rol ve kaynak miras gibi veritabanı dikkate ACL karmaşıklığı doğrudan değişiklik yapmak için tehlikeli olabilir. Zend ACL Zend İstisna dışında başka herhangi bir Zend Framework bağımlılıklar olmadan kendi üzerinde kullanılabileceğini unutmayın.

Çoğu çerçeveler bir kimlik doğrulama modülü dahili-in var. Yani vb Zend, CakePHP, Kod Ignighter, ödeme isteyebilirsiniz

Ayrıca kafa karıştırıcı almak eğilimindedir bir şey kaçması ve kodlama veri arasındaki farktır. Yapılacak veri then kaçtı kodlanmış olduğunda çok daha esnektir.

User Authentication Bir kullanıcı ücretsiz erişim reddeder uygulama sayfasına erişmek için çalışırsa, günlük sayfa için kullanıcıyı yönlendirir ve başarılı bir giriş geri istenen sayfaya getiriyor sonra emin kılar. Kekinin varsayılan Kimlik Doğrulama Böyle bir uygulama wrt tuzaklar, yaklaşım ve yöntemler aşağıda açıklanmıştır.

http://enbake.com/cakephp-user-authentication-auth-component

Çerçevesi kısıtlı yapmaz. Ama daha çok, mevcut modülleri ve daha organize kod ile dev size hızını verir. B / çerçeveler ilgilenen varsa w size karşılaştırma gösterebilir.