मैं देखता हूं कि कुछ हैं । कौन से रखरखाव और उपयोग में आसान हैं? उनके पेशेवरों और विपक्ष क्या हैं?
मैं देखता हूं कि कुछ हैं । कौन से रखरखाव और उपयोग में आसान हैं? उनके पेशेवरों और विपक्ष क्या हैं?
जवाबों:
यह पता चला है, रूसी डेवलपर इल्या कोन्यूखोव ने इसे पढ़ने के बाद गंटलेट को उठाया और डीएक्स प्रामाणिक के आधार पर सीआई के लिए एक नई ऑर्बिट लाइब्रेरी बनाई, जो नीचे दी गई सिफारिशों और आवश्यकताओं का पालन कर रही है।
और परिणामस्वरूप टैंक ऑप ओपी के सवाल के जवाब की तरह लग रहा है। मैं यहाँ एक अंग पर जा रहा हूँ और टैंक प्रामाणिक को आज उपलब्ध CodeIgniter के लिए सर्वश्रेष्ठ प्रमाणीकरण पुस्तकालय कहता हूँ। यह एक रॉक-सॉलिड लाइब्रेरी है जिसमें आपकी ज़रूरत की सभी सुविधाएँ हैं और इनमें से कोई भी ब्लोट आपके पास नहीं है:
पेशेवरों
- पूर्ण विशेषताओं
- सुविधा सेट को देखते हुए लीन फुटप्रिंट (20 फाइलें)
- बहुत अच्छा प्रलेखन
- सरल और सुरुचिपूर्ण डेटाबेस डिजाइन (सिर्फ 4 DB टेबल)
- अधिकांश विशेषताएं वैकल्पिक हैं और आसानी से कॉन्फ़िगर की गई हैं
- भाषा फ़ाइल समर्थन
- reCAPTCHA समर्थित है
- CI की सत्यापन प्रणाली में हुक
- सक्रियण ईमेल
- ईमेल, उपयोगकर्ता नाम या दोनों (कॉन्फ़िगर करने योग्य) के साथ लॉगिन करें
- निष्क्रिय किए गए खाते स्वतः समाप्त हो जाते हैं
- सरल अभी तक प्रभावी त्रुटि से निपटने
- हैशिंग के लिए फ़ॉग का उपयोग करता है (और DB में ऑटोलॉगिन कोड को भी धोता है)
- सुरक्षा प्रश्नों का उपयोग नहीं करता है
- उपयोगकर्ता और प्रोफ़ाइल डेटा का पृथक्करण बहुत अच्छा है
- विफल लॉगिन प्रयासों के आसपास बहुत ही उचित सुरक्षा मॉडल (बॉट और DoS हमलों के खिलाफ अच्छी सुरक्षा)
(मामूली) विपक्ष
- खो पासवर्ड डीबी में हैशेड नहीं हैं
- एक देशी (गरीब) कैप्चा शामिल है, जो उन लोगों के लिए अच्छा है जो (Google के स्वामित्व वाली) reCAPTCHA सेवा पर निर्भर नहीं होना चाहते हैं, लेकिन यह वास्तव में पर्याप्त सुरक्षित नहीं है
- बहुत विरल ऑनलाइन प्रलेखन (मामूली मुद्दा यहाँ, क्योंकि कोड अच्छी तरह से प्रलेखित और सहज है)
यहाँ टैंक प्रामाणिक डाउनलोड करें
मूल उत्तर:
मैंने अपना स्वयं का लागू किया है (वर्तमान में लगभग 80% काम के कुछ हफ्तों के बाद)। मैंने पहले दूसरों की कोशिश की; FreakAuth लाइट, DX प्रामाणिक, Redux, SimpleLogin, SimpleLoginSecure, pc_user, Fresh Powered, और कुछ और। उनमें से कोई भी बराबर नहीं था, आईएमओ, या तो उन्हें बुनियादी सुविधाओं की कमी थी, स्वाभाविक रूप से INsecure, या मेरे स्वाद के लिए भी फूला हुआ था।
वास्तव में, मैंने कोडइग्निटर के लिए सभी प्रमाणीकरण पुस्तकालयों का विस्तृत राउंडअप किया, जब मैं उनका परीक्षण कर रहा था (बस नए साल के बाद)। FWIW, मैं इसे आपके साथ साझा करूंगा:
पेशेवरों
- बहुत भरा हुआ
- मध्यम पदचिह्न (25+ फाइलें), लेकिन काफी पतला महसूस करने का प्रबंधन करता है
- उत्कृष्ट प्रलेखन, हालांकि कुछ थोड़ा टूटी हुई अंग्रेजी में है
- भाषा फ़ाइल समर्थन
- reCAPTCHA समर्थित है
- CI की सत्यापन प्रणाली में हुक
- सक्रियण ईमेल
- निष्क्रिय किए गए खाते स्वतः समाप्त हो जाते हैं
- नमक के लिए grc.com को दर्शाता है (PRNG के लिए बुरा नहीं)
- संग्रहीत 'कारण' तार के साथ प्रतिबंध
- सरल अभी तक प्रभावी त्रुटि से निपटने
विपक्ष
- केवल उपयोगकर्ताओं को एक खोए हुए पासवर्ड को 'रीसेट' करने देता है (बजाय उन्हें पुनर्सक्रियन पर एक नया चुनने देता है)
- Homebrew छद्म घटना मॉडल - अच्छा इरादा है, लेकिन निशान याद आती है
- उपयोगकर्ता तालिका में दो पासवर्ड फ़ील्ड, खराब शैली
- दो अलग-अलग उपयोगकर्ता तालिकाओं का उपयोग करता है ('अस्थायी' उपयोगकर्ताओं के लिए एक - अस्पष्ट और निरर्थक)
- संभावित असुरक्षित md5 हैशिंग का उपयोग करता है
- केवल IP द्वारा संग्रहीत लॉगिन विफल प्रयास, उपयोगकर्ता नाम से नहीं - असुरक्षित!
- ऑटोलॉगिन कुंजी डेटाबेस में हैशेड नहीं है - व्यावहारिक रूप से क्लियरटेक्स में पासवर्ड संग्रहीत करने के रूप में असुरक्षित है!
- भूमिका प्रणाली एक पूर्ण गड़बड़ी है: हार्ड कोडित भूमिका नामों के साथ is_admin फ़ंक्शन, is_role एक संपूर्ण गड़बड़ है, check_uri_permissions एक गड़बड़ है, संपूर्ण अनुमतियाँ तालिका एक बुरा विचार है (एक URI पृष्ठों को बदल सकता है और प्रस्तुत कर सकता है; अनुमतियाँ हमेशा संग्रहीत होनी चाहिए; जहां संवेदनशील तर्क है)। सौदा तोड़ने वाला!
- एक देशी (गरीब) कैप्चा शामिल है
- reCAPTCHA फ़ंक्शन इंटरफ़ेस गड़बड़ है
पेशेवरों
- बहुत भरा हुआ
- ज्यादातर काफी अच्छी तरह से प्रलेखित कोड
- उपयोगकर्ता और प्रोफ़ाइल डेटा का पृथक्करण एक अच्छा स्पर्श है
- CI की सत्यापन प्रणाली में हुक
- सक्रियण ईमेल
- भाषा फ़ाइल समर्थन
- सक्रिय रूप से विकसित
विपक्ष
- थोड़ा फूला हुआ महसूस होता है (50+ फाइलें)
- और फिर भी इसमें स्वचालित कुकी लॉगिन (!) का अभाव है
- उपयोगकर्ता नाम और ईमेल दोनों के साथ लॉगिन का समर्थन नहीं करता है
- लगता है कि UTF-8 वर्णों के साथ समस्याएँ हैं
- बहुत सारे ऑटोलोदिंग (आवेगपूर्ण प्रदर्शन) की आवश्यकता होती है
- बुरी तरह से micromanaged विन्यास फाइल
- भयानक व्यू-कंट्रोलर सेपरेशन, व्यूज में बहुत सारे लॉजिक और कंट्रोलर्स में हार्ड-कोडेड। सौदा तोड़ने वाला!
- शामिल विचारों में खराब HTML कोड
- इसमें घटिया कैप्चा शामिल है
- हर जगह डीबग गूँज टिप्पणी की
- एक विशिष्ट फ़ोल्डर संरचना को मजबूर करता है
- एक विशिष्ट अजाक्स पुस्तकालय को मजबूर किया जा सकता है (स्विच किया जा सकता है, लेकिन पहले स्थान पर नहीं होना चाहिए)
- लॉगिन प्रयासों पर कोई अधिकतम सीमा नहीं - बहुत असुरक्षित! सौदा तोड़ने वाला!
- अपहर्ताओं का सत्यापन होता है
- संभावित असुरक्षित md5 हैशिंग का उपयोग करता है
पेशेवरों
- इसकी छोटी पायदान के लिए अच्छी सुविधा सेट
- लाइटवेट, कोई ब्लोट (3 फाइलें)
- सुरुचिपूर्ण स्वचालित कुकी लॉगिन
- वैकल्पिक परीक्षण कार्यान्वयन (अच्छा स्पर्श) के साथ आता है
विपक्ष
- पुराने CI डेटाबेस सिंटैक्स (कम सुरक्षित) का उपयोग करता है
- CI की मान्यता प्रणाली में हुक नहीं है
- Kinda unintuitive status (भूमिका) प्रणाली (उल्टा अनुक्रमित - अव्यावहारिक)
- संभावित रूप से असुरक्षित sha1 हैशिंग का उपयोग करता है
पेशेवरों
- छोटा पदचिह्न (6 फाइलें)
विपक्ष
- बहुत सारी आवश्यक सुविधाएँ खो देता है। सौदा तोड़ने वाला!
- सब कुछ हार्ड-कोडेड है। सौदा तोड़ने वाला!
CodeIgniter wiki के अनुसार , Redux को बंद कर दिया गया है, लेकिन आयन प्रामाणिक कांटा मजबूत हो रहा है: https://github.com/benedmunds/CodeIgniter-Ion-Auth
इओन ऑथ एक अच्छी तरह से चित्रित पुस्तकालय है बिना इसके अत्यधिक भारी या उन्नत के तहत। ज्यादातर मामलों में इसका फीचर सेट किसी प्रोजेक्ट की जरूरतों को पूरा करने से ज्यादा होगा।
पेशेवरों
- हल्के और सरल CodeIgniter के साथ एकीकृत करने के लिए
- लाइब्रेरी से सीधे ईमेल भेजने का समर्थन करता है
- अच्छी तरह से प्रलेखित ऑनलाइन और अच्छा सक्रिय देव / उपयोगकर्ता समुदाय
- एक परियोजना में लागू करने के लिए सरल
विपक्ष
- कुछ अन्य लोगों की तुलना में अधिक जटिल डीबी स्कीमा
- कुछ क्षेत्रों में प्रलेखन में विस्तार का अभाव है
पेशेवरों
- छोटे पदचिह्न (4 फाइलें)
- मिनिमलिस्टिक, बिल्कुल ब्लोट नहीं
- हैशिंग (उत्कृष्ट) के लिए फ़ॉग का उपयोग करता है
विपक्ष
- केवल लॉगिन, लॉगआउट, बनाएं और हटाएं
- बहुत सारी आवश्यक सुविधाएँ खो देता है। सौदा तोड़ने वाला!
- एक पुस्तकालय से अधिक प्रारंभिक बिंदु
मुझे गलत मत समझो: मेरा मतलब उपरोक्त पुस्तकालयों में से किसी का भी अनादर करने से नहीं है; मैं इससे बहुत प्रभावित हूं कि उनके डेवलपर्स ने क्या पूरा किया है और उनमें से प्रत्येक कितना दूर आया है, और मैं अपना खुद का निर्माण करने के लिए उनके कुछ कोड का पुन: उपयोग करने से ऊपर नहीं हूं। मैं जो कह रहा हूं, कभी-कभी इन परियोजनाओं में, फोकस 'आवश्यक-से-हव्स' (जैसे कड़ी सुरक्षा प्रथाओं) से हटकर 'गुड-टू-हैव्स' को नरम करने के लिए होता है, और यही मैं उपाय करने की उम्मीद करता हूं ।
इसलिए: मूल बातें वापस।
यहाँ एक प्रमाणीकरण पुस्तकालय से सुविधाओं की मेरी आवश्यक सूची है। यह मेरी अपनी लाइब्रेरी की फीचर सूची का सबसेट भी होता है;)
- वैकल्पिक परीक्षण कार्यान्वयन के साथ छोटे पदचिह्न
- पूर्ण प्रलेखन
- कोई ऑटोलॉडिंग की आवश्यकता नहीं है। प्रदर्शन के लिए पुस्तकालयों के समय पर लोडिंग
- भाषा फ़ाइल समर्थन; कोई हार्ड-कोडिंग स्ट्रिंग्स नहीं
- reCAPTCHA समर्थित लेकिन वैकल्पिक
- अनुशंसित TRUE यादृच्छिक नमक पीढ़ी (जैसे random.org या random.irb.hr का उपयोग करके)
- तृतीय पक्ष लॉगिन (ओपनआईडी, फेसबुक कनेक्ट, Google खाता, आदि) का समर्थन करने के लिए वैकल्पिक ऐड-ऑन
- उपयोगकर्ता नाम या ईमेल का उपयोग करके लॉगिन करें
- उपयोगकर्ता और प्रोफ़ाइल डेटा का पृथक्करण
- सक्रियण और खो पासवर्ड के लिए ईमेल
- स्वचालित कुकी लॉगिन सुविधा
- हैशिंग के लिए विन्यास योग्य फ़ॉग (ठीक से नमकीन!)
- पासवर्डों की हैशिंग
- ऑटोलॉगिन कोड का हाशिंग
- खो पासवर्ड कोड का हाशिंग
- CI की सत्यापन प्रणाली में हुक
- कोई सुरक्षा प्रश्न नहीं!
- वैकल्पिक क्लाइंट-साइड (जावास्क्रिप्ट) सत्यापनकर्ता के साथ मजबूत पासवर्ड पॉलिसी सर्वर-साइड लागू किया गया
- दोनों शब्दकोश और DoS हमलों के खिलाफ BEST PRACTICES काउंटरमेसर के साथ असफल लॉगिन प्रयासों की अधिकतम संख्या को लागू किया गया !
- सभी डेटाबेस का उपयोग तैयार (बाध्य) बयानों के माध्यम से किया जाता है!
नोट: उन पिछले कुछ अंक हैं नहीं सुपर उच्च सुरक्षा overkill कि आप अपने वेब आवेदन के लिए की जरूरत नहीं है। यदि कोई प्रमाणीकरण पुस्तकालय इन सुरक्षा मानकों को 100% पूरा नहीं करता है, तो इसका उपयोग न करें!
गैर-जिम्मेदार कोडर्स के हालिया हाई-प्रोफाइल उदाहरण जिन्होंने उन्हें अपने सॉफ़्टवेयर से बाहर रखा: # 17 यह है कि राष्ट्रपति अभियान के दौरान सारा पॉलिन का एओएल ईमेल कैसे हैक किया गया था; # 18 और # 19 का एक गंदा संयोजन हाल ही में अपराधी था जब ब्रिटनी स्पीयर्स, बराक ओबामा, फॉक्स न्यूज और अन्य के ट्विटर अकाउंट हैक कर लिए गए थे; और अकेले # 20 कैसे चीनी हैकर्स 2008 में एक स्वचालित हैक में 70.000 से अधिक कोरियाई वेब साइटों से व्यक्तिगत जानकारी के 9 मिलियन आइटम चोरी करने में कामयाब रहे।
ये हमले ब्रेन सर्जरी नहीं हैं। यदि आप अपने पीछे के दरवाजे को खुला छोड़ देते हैं, तो आपको सामने की ओर झुककर अपने आप को सुरक्षा के झूठे अर्थ में नहीं बदलना चाहिए। इसके अलावा, यदि आप कोडिंग के बारे में सर्वोत्तम तरीके से कोडिंग करने के बारे में गंभीर हैं, तो कोडाइग्निटर की तरह, आप कम से कम सही तरीके से किए गए सबसे बुनियादी सुरक्षा उपायों को प्राप्त करने के लिए इसे खुद पर निर्भर करते हैं ।
<शेख़ी>
मूल रूप से, यहां बताया गया है कि: मुझे परवाह नहीं है कि अगर कोई लाइब्रेरी लाइब्रेरी सुविधाओं, उन्नत भूमिका प्रबंधन, PHP4 संगतता, सुंदर कैप्चा फोंट, कंट्री टेबल, पूरा व्यवस्थापक पैनल, घंटियाँ और सीटियां देती है - यदि लाइब्रेरी वास्तव में बनाती है सर्वोत्तम प्रथाओं का पालन न करके मेरी साइट कम सुरक्षित है। यह एक प्रमाणीकरण पैकेज है; इसके लिए एक बात सही करनी होगी: प्रमाणीकरण। यदि वह ऐसा करने में विफल रहता है , तो यह वास्तव में अच्छे से अधिक नुकसान कर रहा है।
</ शेख़ी>
/ जेन्स रोलैंड
ध्यान दें कि जेन्स रोलैंड द्वारा "व्यापक लिस्टिंग" में उपयोगकर्ता भूमिकाएं शामिल नहीं हैं। यदि आप विभिन्न उपयोगकर्ता भूमिकाएँ (जैसे कि व्यवस्थापक / उपयोगकर्ता या व्यवस्थापक / संपादक / उपयोगकर्ता) निर्दिष्ट करने में रुचि रखते हैं, तो ये पुस्तकालय इसकी अनुमति देते हैं:
Tank_Auth (# 1 जेन्स की सूची में ऊपर) में उपयोगकर्ता भूमिकाएं नहीं हैं। मुझे लगता है कि यह वास्तव में प्रमाणीकरण का हिस्सा नहीं है, लेकिन तब से
यदि आपको इसकी आवश्यकता है, तो दोनों को संभालने के लिए एक पुस्तकालय होना बहुत मायने रखता है। मैं इस वजह से टैंक_ऑथ से Ion_Auth पर स्विच कर रहा हूं।
Ion_auth! बहुत आशाजनक और छोटे पदचिह्न लगते हैं! मुझे पसंद है..
मैं Redux Auth का डेवलपर हूं और आपके द्वारा बताए गए कुछ मुद्दे संस्करण 2 बीटा में तय किए गए हैं। आप इसे एक नमूना आवेदन के साथ ऑफिशियल वेबसाइट से भी डाउनलोड कर सकते हैं।
- ऑटोलोदिंग (बाधा प्रदर्शन) की आवश्यकता है
- 'सुरक्षा प्रश्नों' की अंतर्निहित असुरक्षित अवधारणा का उपयोग करता है। सौदा तोड़ने वाला!
सुरक्षा प्रश्नों का अब उपयोग नहीं किया जाता है और एक सरल भूल पासवर्ड सिस्टम डाल दिया गया है।
- रिटर्न प्रकार सही, गलत, त्रुटि और सफलता कोड के एक हॉजपॉट के रूप में होते हैं
यह संस्करण 2 में तय किया गया था और बूलियन मान लौटाता है। मुझे आपके जितना ही हॉजपोज से नफरत थी।
- CI की मान्यता प्रणाली में हुक नहीं है
नमूना आवेदन सीआई की सत्यापन प्रणाली का उपयोग करता है।
- उपयोगकर्ता को 'खोए हुए पासवर्ड' कोड को फिर से भेजने की अनुमति नहीं देता है
कार्य प्रगति पर है
मैंने कुछ अन्य सुविधाएँ भी लागू की हैं जैसे कि ईमेल दृश्य, यह आपको अपने ईमेल में कोडआईग्निटर सहायकों का उपयोग करने में सक्षम होने का विकल्प देता है।
यह अभी भी प्रगति पर है, अगर कोई और सुझाव है तो कृपया उन्हें आते रहें।
-मकई का लावा
पुनश्च: Redux की सिफारिश करने के लिए धन्यवाद।
मैं फ्लेक्सी ऑथ ( http://haseydesign.com/flexi-auth/) पर आया हूं ) पर । यह बहुत ही आशाजनक लग रहा है, और मैंने इसका उपयोग करना शुरू कर दिया है। इसमें वंडरफुल फीचर्स हैं। पूरी तरह से CI के साथ एकीकृत है, और दो अलग-अलग लाइब्रेरी फ़ाइलों के साथ आता है, जिसमें एक सभी कार्यों से बहुत भारी है और दूसरे में केवल मान्यताएं हैं।
सबसे अच्छा यह है कि नए पंजीकृत सदस्य को साइट पर दिए गए समय के लिए अस्थायी पहुंच मिलती है, जब तक कि वे अपने ईमेल से लिंक पर क्लिक नहीं करते हैं और सक्रिय नहीं होते हैं।
हो सकता है कि आप Redux को अपनी आवश्यकताओं के अनुरूप खोज लेंगे । यह कोई ओवरकिल नहीं है और पूरी तरह से नंगे फीचर्स के साथ पैक किया जाता है, जिसकी हम में से अधिकांश को आवश्यकता होगी। देव और योगदानकर्ता इस बात पर बहुत सख्त थे कि किस कोड का योगदान था।
मैं DX प्रामाणिक का एक अनुकूलित संस्करण का उपयोग करता हूं । मुझे इसका उपयोग करना सरल लगा, इसे संशोधित करना बहुत आसान है और इसमें एक उपयोगकर्ता गाइड (महान उदाहरणों के साथ) है जो कोड इग्नाइटर के समान है।
इसके अलावा BackendPro पर एक नज़र डालें
अंतत: आप संभवत: कुछ रिवाज लिखना समाप्त कर देंगे, लेकिन डीएक्स प्रामाणिक, फ्रीक ऑथ, बैकएंडप्रो, आदि से उधार अवधारणाओं के साथ कुछ भी गलत नहीं है।
पैकेज्ड एप्स के साथ मेरा अनुभव यह है कि वे कुछ संरचनाओं के लिए विशिष्ट हैं और मुझे हैक की आवश्यकता के बिना उन्हें अपने स्वयं के अनुप्रयोगों में एकीकृत करने में समस्या हुई है, तो यदि पूर्व-पैकेज में कोई अपडेट है, तो मुझे उन्हें माइग्रेट करना होगा।
मैं अपने CI कोड में Smarty और ADOdb का भी उपयोग करता हूं, इसलिए कोई फर्क नहीं पड़ता कि मैं हमेशा प्रमुख कोड परिवर्तन करता हूं।
टैंक प्रामाणिक अच्छा लग रहा है, लेकिन प्रलेखन सिर्फ एक पृष्ठ का विवरण है कि कैसे स्थापित किया जाए, साथ ही प्रत्येक PHP फ़ाइल का एक त्वरित रन-डाउन। कम से कम वह सब मुझे बहुत सारे Googling के बाद मिला। हो सकता है कि जब लोग कहते हैं कि टैंक प्रामाणिक अच्छी तरह से प्रलेखित है, तो इसका मतलब यह है कि कोड अच्छी तरह से टिप्पणी की गई है। यह एक अच्छी बात है, लेकिन प्रलेखन से अलग है। अपने मौजूदा कोड के साथ टैंक प्रामाणिक की विशेषताओं को कैसे एकीकृत किया जाए, इसके बारे में कुछ दस्तावेज होना अच्छा होता।
मैं Ion_Auth कोशिश कर रहा हूं और इसकी सराहना करता हूं, btw ...
SimpleLoginSecure प्रमाणीकरण को सरल और सुरक्षित बनाता है।