I a few vardır görebilirsiniz. Hangileri bakımı ve kullanımı kolay vardır? Onların artıları ve eksileri nelerdir?
I a few vardır görebilirsiniz. Hangileri bakımı ve kullanımı kolay vardır? Onların artıları ve eksileri nelerdir?
It turns out, the russian developer Ilya Konyukhov picked up the gauntlet after reading this and created a new auth library for CI based on DX Auth, following the recommendations and requirements below.
And the resulting Tank Auth OP'ın sorusuna cevap gibi bakıyor. Ben burada bir uzuv çıkmak ve bugün Tank auth mevcut CodeIgniter için en iyi kimlik doğrulama kütüphanesi arayacağım. Strong>: Bu, tüm ihtiyacınız olan özellikleri ve yapmak değil kabartmak hiçbirine sahip bir kaya gibi sağlam bir kütüphane bulunuyor
Artıları
- Tam özellikli
- Yalın ayak izi (20 dosyalar) özellik setini dikkate
- Çok iyi bir dokümantasyon
- Basit ve zarif veritabanı tasarımı (sadece 4 DB tablolar)
- En özellikleri isteğe bağlı ve kolayca yapılandırılmış
- Dil dosyası desteği
- reCAPTCHA Desteklenen
- CI doğrulama sistemine Kancalar
- Aktivasyon e-postalar
- E-posta, kullanıcı adı veya her ikisi (yapılandırılabilir) giriniz
- Unactivated otomatik sona hesapları
- Basit ama etkili bir hata işleme
- Karma için phpass kullanır (ve aynı zamanda DB autologin kodları sağlamalarının)
- Güvenlik soruları kullanmaz
- Kullanıcı ve profil verilerinin ayrılması çok güzel
- Çok uygun güvenlik modeli etrafında (botlar ve DoS saldırılarına karşı koruma) başarısız giriş denemesinden
(Minor) Eksileri
- Kayıp şifre kodları DB karma değil
- (Google-ait) ReCAPTCHA hizmeti bağımlı istemiyorum isteyenler için güzel bir yerli (kötü) CAPTCHA içerir, ama gerçekten yeterince güvenli değil
- (Kod güzel belgelenmiş ve sezgisel beri burada küçük sorun) Çok seyrek çevrimiçi belgeleri
Orijinal cevap:
Ben (şu anda yaklaşık% 80 çalışma bir kaç hafta sonra yapılır) de kendi uyguladık. Ben ilk tüm diğerleri denedim; FreakAuth Işık, DX Auth, Redux, SimpleLogin, SimpleLoginSecure, pc_user, Powered Taze ve birkaç tane daha. Bunların hiçbiri IMO, par kadar vardı ya, onlar doğal olarak güvensiz, temel özellikleri eksik, ya da benim tatmak için çok şişirilmiş edildi.
(Sadece Yeni Yıl sonra) onları test ederken, aslında, ben CodeIgniter için tüm kimlik doğrulama kütüphaneleri ayrıntılı bir toparlama yaptım. FWIW, sizinle paylaşmak olacak:
Artıları
- Çok tam özellikli
- Orta ayak izi (25 + dosyaları), ama oldukça ince hissediyorum yönetir
- Mükemmel belgeler, bazı biraz kırık İngilizce olmasına rağmen
- Dil dosyası desteği
- reCAPTCHA Desteklenen
- CI doğrulama sistemine Kancalar
- Aktivasyon e-postalar
- Unactivated otomatik sona hesapları
- (Bir PRNG için kötü değil) tuzları grc.com Önerdi
- Saklanan 'akıl' dizeleri ile yasaklanması
- Basit ama etkili bir hata işleme
Eksileri
- Sadece kullanıcıların 'reset' (yerine onları reaktivasyonuna üzerine bir yenisini seçmesindeki daha) bir kayıp şifre sağlar
- Homebrew sözde olay modeli - iyi niyet, ama işareti özlüyor
- Kullanıcı tabloda iki şifre alanları, kötü tarzı
- Iki ayrı kullanıcı tabloları kullanır ('geçici' kullanıcılar için bir - belirsiz ve gereksiz)
- Güvensiz md5 karma kullanır
- Başarısız oturum açma girişimleri sadece kullanıcı adı ile, IP tarafından saklanır - güvensiz!
- Otomatik girişi anahtar veritabanında karma değil - Parolaları düz metin olarak saklanması gibi pratik olarak güvensiz!
- Rol sistem tam bir karmaşa: tam bir karmaşa is_role kodlanmış rol adları, check_uri_permissions ile is_admin fonksiyonu bir karışıklık olduğunu, bütün izinleri tablo kötü bir fikir (URI korunmasız sayfalarını değiştirmek ve işleyebilir olduğunu; izinleri her zaman tam olarak saklanmalıdır duyarlı mantığı) olduğu. Anlaşmabozucu!
- Bir yerli (kötü) CAPTCHA Kapsar
- reCAPTCHA fonksiyon arayüzü dağınık
Artıları
- Çok tam özellikli
- Çoğunlukla oldukça iyi belgelenmiş kodu
- Kullanıcı ve profil verilerinin ayrılması hoş bir dokunuş
- CI doğrulama sistemine Kancalar
- Aktivasyon e-postalar
- Dil dosyası desteği
- Aktif geliştirdi
Eksileri
- Biraz şişirilmiş hissediyor (50 + dosya)
- Ve henüz otomatik çerez giriş yoksun (!)
- Kullanıcı adı ve e-posta hem de giriş desteklemiyor
- UTF-8 karakterler ile ilgili sorunlar var gibi görünüyor
- Autoloading bir sürü gerektirir (performansını engelleyen)
- Kötü micromanaged yapılandırma dosyası
- Denetleyicileri içine kodlanmış görüş ve çıkış program mantığı dolu korkunç View-Controller ayırma,. Anlaşmabozucu!
- Dahil görünümlerde kötü HTML kodu
- Altı CAPTCHA Kapsar
- Yorumlananlar ayıklama yerde yankıları
- Belirli bir klasör yapısını zorlar
- Belirli bir Ajax kütüphanesi zorlar (açılabilir, ancak ilk etapta orada olmamalı)
- Oturum açma girişimleri yok maksimum sınırı - ÇOK güvensiz! Anlaşmabozucu!
- Form doğrulama kaçırdı
- Güvensiz md5 karma kullanır
Artıları
- Onun küçücük ayak izi için iyi bir özellik seti
- Hafif, hayır kabartmak (3 dosya)
- Elegant otomatik tanımlama giriş
- İsteğe bağlı testi uygulaması ile birlikte geliyor (hoş bir dokunuş)
Eksileri
- Eski CI veritabanı sözdizimi kullanır (daha az güvenli)
- CI doğrulama sistemine kanca gelmez
- Kinda unintuitive durumu (rolü) sistem (gösterge baş aşağı - pratik)
- Güvensiz sha1 karma kullanır
Artıları
- Küçük ayak izi (6 dosyaları)
Eksileri
- Temel özellikleri bir çok yoksun. Anlaşmabozucu!
- Her şey kodlanmış olduğunu. Anlaşmabozucu!
Göre the CodeIgniter wiki, Redux kesildikten, ancak İyon Auth çatal güçlü oluyor: https://github.com/benedmunds/CodeIgniter-Ion-Auth
Bunu kullanılan Birileri Ion için burada bir bölüm eklemek gerekir ...
Artıları
- Tiny ayak izi (4 dosya)
- Minimalist, kesinlikle hiçbir kabartmak
- Karma için phpass kullanır (mükemmel)
Eksileri
- Yalnızca, çıkış, giriş oluşturmak ve silmek
- Temel özellikleri bir çok yoksun. Anlaşmabozucu!
- Bir kütüphane daha bir başlangıç noktası daha
Don't get me wrong: Ben yukarıdaki kitaplıkların herhangi saygısızlık etmek istemem; Ben kendi geliştiriciler başarılı ve ne kadar bunların her biri gelmiş ne çok etkilendim ve ben yukarıda benim kendi oluşturmak için kendi kod bazıları yeniden değilim. Dediğimi isimli, bazen bu projelerde, gelen odak vardiya gerekli 'gerek-zenginler' üzerinde (örneğin sert güvenlik uygulamaları gibi) yumuşak 'için gerekenler-güzel', ve ben çare için umut ne .
Bu nedenle: geri temelleri.
İşte bir kimlik doğrulama kütüphane özellikleri benim MINIMAL gerekli listesi bulunuyor. Bu da benim kendi kütüphanenin özellik listesinin bir alt kümesi olur ;)
- İsteğe bağlı testi uygulanması ile minik ayak izi
- Tüm belgeler
- Autoloading gerekmez. Performans için kütüphanelerin just-in-time yükleme
- Dil dosyası desteği; no hard-coded strings
- reCAPTCHA Desteklenen but optional
- Önerilen DOĞRU rastgele tuz üretimi (örn. random.org kullanarak veya random.irb.hr)
- 3. parti giriş desteklemek için isteğe bağlı eklentiler (OpenID, Facebook Connect, Google Hesabı, vb)
- Kullanıcı adı veya e-posta kullanarak giriniz
- Kullanıcı ve profil verilerinin ayrılması
- Aktivasyonu için e-posta ve şifreler kayıp
- Otomatik tanımlama giriş özelliği
- Karma için yapılandırılabilir phpass (düzgün tabii tuzlu!)
- Şifreleri karma
- Autologin kodları karma
- Kayıp şifre kodları karma
- CI doğrulama sistemine Kancalar
- NO güvenlik sorular!
- Isteğe bağlı istemci tarafında (JavaScript) onaylayıcısı ile yürürlüğe güçlü bir şifre politikası sunucu tarafı,
- BEST PRACTICES countermeasures sözlük ve DoS saldırılarına karşı hem başarısız oturum açma girişimi zorlanan maksimum!
- Hazırlanan (bağlı) tablolar üzerinden yapılan tüm veritabanı erişimi!
Not: Bu son birkaç puan sizin web uygulaması için gerek yok not süper yüksek güvenlikli overkill vardır. If an authentication library doesn't meet these security standards 100%, DO NOT USE IT!
Kendi yazılım onları terk sorumsuz kodcuların son yüksek profilli örnekler: # 17 Sarah Palin'in AOL e-posta Başkanlık kampanyası sırasında hacklendi nasıl; Britney Spears, Barack Obama, Fox News ve başkalarının Twitter hesapları hacklendi zaman # 18 ve # 19 pis bir kombinasyonu son zamanlarda suçlu vardı; ve yalnız 20. Çinli hackerlar, 2008 yılında bir otomatik hack fazla 70.000 Kore web sitelerinden kişisel bilgilerin 9 milyon öğeleri çalmak başardı nasıl.
Bu saldırılar beyin ameliyatı değildir. Açık geniş arka kapı bırakırsanız, ön cıvatalanmasıyla yanlış bir güvenlik duygusu içine kendini kandırma olmamalıdır. Eğer CodeIgniter gibi en iyi uygulamaları çerçeveyi seçmek için kodlama hakkında yeterince ciddi iseniz Ayrıca, en azından en fazla basic güvenlik önlemleri doğru yapılması almak için kendinize borçluyuz.
Temelde, işte burada nasıl: I don't care bir auth kitaplık bir özellik demet gelişmiş rol yönetimi, PHP4 uyumluluk, oldukça CAPTCHA yazı, ülke tabloları, tam yönetici panelleri, çan ve ıslık sunuyor eğer - eğer kütüphane Aslında en iyi uygulamaları izleyerek değil sitemde less secure yapar. Bir authentication paket; Kimlik Doğrulama: Doğru bir şey yapmak gerekiyor. Bunu yapmak için başarısız olursa that, aslında yarardan çok zarar yapıyor.
Rant>
/ Jens Roland
Jens Roland tarafından "kapsamlı liste" kullanıcı rollerini içermez unutmayın. Eğer farklı kullanıcı rolleri atama ilgileniyorsanız (admin / user veya admin / editör / kullanıcı gibi), bu kütüphanelerin izin:
Tank_Auth (Jens listesinde yukarıda # 1) Kullanıcı rolleri yoktur. Ben tam kimlik parçası değil farkındayım, ama beri
Eğer ihtiyacınız varsa o, hem işlemek için bir kütüphane var anlamda bir LOT yapar. Ben bu nedenle Tank_Auth gelen Ion_Auth geçiyorum.
Ben Redux Auth geliştirici yaşıyorum ve belirtilen konularda bazı sürüm 2 beta sabit olmuştur. Sen de bir örnek uygulama ile offcial web sitesi kapalı indirebilirsiniz.
- Autoloading Gerektirir (engel performans)
- 'Güvenlik soruları' ve doğal olarak güvensiz kavramını kullanır. Anlaşmabozucu!
Güvenlik soruları şimdi kullanılan değildir ve basit bir unutulmuş bir şifre sistemi yerine koymak olmuştur.
- Dönüş tipleri doğru, yanlış, hata ve başarı kodları karmakarışık bir bit
Bu sürüm 2 sabit ve mantıksal değerleri döndürür edildi. Ben senin kadar nefret artılarından.
- CI doğrulama sistemine kanca gelmez
Örnek uygulama CI doğrulama sistemi kullanır.
- Bir kullanıcı bir 'kayıp şifre' kod yeniden izin vermez
Çalışma sürüyor
Ben aynı zamanda e-posta görünümleri gibi diğer bazı özelliklerini hayata, bu size e-postalarda CodeIgniter yardımcıları kullanmak mümkün olmanın şansı veriyor.
Daha fazla öneriniz varsa onlara gelmesini lütfen bu yüzden hala devam eden bir çalışma var.
-Popcorn
Ps: Redux tavsiye için teşekkürler.
Belki Redux ihtiyaçlarınızı takım elbise kumaşı bulmak istiyorum. Hiçbir overkill ve sadece çoğumuz gerektirecek çıplak özelliklerle dolu geliyor. Dev ve katkıda katkıda hangi kod üzerinde çok sıkı idi.
Bu official page olduğu
Ben özelleştirilmiş bir sürümünü kullanın DX Auth. Ben değiştirmek son derece kolay, kullanımı basit buldum ve bir user guide (with great examples) o Kod Ateşleyici en çok benzer vardır.
Ayrıca BackendPro bir göz atın
Sonuçta muhtemelen şey özel yazılı sona erecek, ancak vb DX Auth, Freak Auth, BackendPro, borçlanma kavramları ile yanlış bir şey var
Paketlenmiş uygulamalar ile benim deneyimleri belli yapılara özgü ve ben pre-paket bir güncelleştirme varsa o zaman, ben onları içeri göç etmek zorunda, kesmek gerektirmeden kendi uygulamaları içine entegre sorunları vardı olduğunu
Ben de hep büyük kod değişiklikleri yaparak sona ereceğini, ne olursa olsun benim CI kod Smarty ve adodb kullanın, böylece.
Ben Flexi Auth geldim (http://haseydesign.com/flexi-auth/). Bu çok umut verici görünüyor, ve bunu kullanarak başladım. Bu wonderfful özelliklere sahiptir. Tamamen CI ile entegre ve bir çok ağır tüm fonksiyonları ile yüklü ve diğeri sadece doğrulamaları içeren olduğu iki farklı kütüphane dosyaları ile birlikte geliyor.
Iyi biri onların e-posta gelen linke tıklayın ve etkinleştirmek kadar yeni kayıtlı üye, sitede zaman belirli bir süre için geçici erişim alır olmasıdır.
Tank Auth iyi görünüyor ama belgeleri sadece yüklemek için nasıl bir sayfalık açıklama, artı her PHP dosyanın hızlı bir çalışma aşağı. En azından google'da çok sonra buldum hepsi bu. Belki ne Tank Auth iyi belgelenmiş olduğunu söylerken insanlar yukarıda ortalama kod iyi yorumladı olmasıdır. Bu iyi bir şey, ama belgelere farklı. Bu, varolan kodla Tank AUTH'u özelliklerini entegre konusunda bazı belgelere sahip olmak güzel olurdu.