2009-01-05 7 views
15

मुझे आपकी खुद की उपयोगकर्ता प्रमाणीकरण स्क्रिप्ट रोल करने के जोखिमों से अवगत है, लेकिन मैं ऐसे पैकेजों का उपयोग करने से भी सावधान हूं जो सक्रिय रूप से बनाए रखा प्रतीत नहीं होता है: current version of PEAR LiveUser लगभग एक वर्ष पुराना है।उपयोगकर्ता प्रमाणीकरण के लिए सक्रिय रूप से PHP पुस्तकालयों को बनाए रखा?

कृपया सक्रिय रूप से बनाए रखा उपयोगकर्ता-प्रमाणीकरण लाइब्रेरी की अनुशंसा करें (और मामले के लिए बहस करें) जिसे मौजूदा वेब प्रोजेक्ट में एकीकृत किया जा सकता है। यह आदर्श रूप से विभिन्न भूमिकाओं - अज्ञात उपयोगकर्ताओं, पंजीकृत उपयोगकर्ताओं और प्रशासकों को विभिन्न स्तरों पर समर्थन देना चाहिए।

+2

अपने सिस्टम को रोल करना जरूरी नहीं है। बस सुनिश्चित करें कि आपका सिस्टम * एक अच्छा है *। इसका मतलब है शोध के महीनों और सावधान विचार, लेकिन यह किया जा सकता है और आप बहुत कुछ सीखेंगे। या यदि आपके पास समय नहीं है, तो किसी और को ढूंढें। लेकिन अगर आपको नहीं पता कि अपना खुद का निर्माण कैसे करें ... आप कैसे जान सकते हैं कि किसी और की प्रणाली कितनी अच्छी है? :) –

+0

आप https://github.com/delight-im/PHP-Auth पर एक नज़र डालना चाहते हैं जो फ्रेमवर्क-अज्ञेयवादी और डेटाबेस-अज्ञेय दोनों है। – caw

उत्तर

5

ऐसा लगता है कि पीयर ने बहुत कुछ नहीं बदला है क्योंकि यह स्थिर है। मैं इसका इस्तेमाल करने से डर नहींूंगा।

6

ऐसा लगता है कि आप एक प्रमाणीकरण पुस्तकालय की बजाय उपयोगकर्ता नियंत्रण पुस्तकालय चाहते हैं। Zend_Auth (जो उपयोगकर्ता प्रमाणीकरण संभालती है: लॉगिन (जैसे simple database tablesOpenID करने के लिए)) और Zend_Acl (जो चीजों के उपयोगकर्ता पहुँच पक्ष संभालती है)

उदाहरण के लिए, Zend Framework में दो वर्ग हैं।

मुझे ज़ेडएफ कक्षाएं पसंद हैं - मैंने उन्हें ज़ेडएफ परियोजना के बाहर उपयोग करने की कोशिश नहीं की है, लेकिन उनके अधिकांश वर्ग इसे आज़मा सकते हैं। भले ही आप अपना खुद का निर्माण करने का फैसला करते हैं, वे संदर्भ के लिए उपयोगी होंगे।

-3

md5() का उपयोग करते समय; अपने mysql डेटाबेस में किसी तालिका पर पासवर्ड संग्रहीत करने के लिए।

ध्यान रखें कि लॉगिन फॉर्म से दर्ज पासवर्ड की जांच करते समय उसी प्रोसेस की आवश्यकता होगी, डेटाबेस में से एक के साथ।

एक हैश पैदा समारोह का एक और उदाहरण

SHA1 है();

यू हमेशा 2 कार्यों लपेट और एक सरल हैश पीढ़ी विधि बना सकते हैं

= md5 (SHA1 ($ स्ट्रिंग)) $ स्ट्रिंग;

$ स्ट्रिंग लौटाएं; // रिटर्न किए गए मूल्य

नमक() फ़ंक्शन का उपयोग करना भी संभव है, जो आपकी "सार्वजनिक कुंजी" को कुछ हद तक अनुमति देता है।

नमक ("mystring123", "jz");

+1

'md5 (sha1 ($ string)) करना 'केवल टक्कर दर में वृद्धि करेगा और आपके एप्लिकेशन को कम सुरक्षित बनाएगा। आपको केवल sha1 का उपयोग करना चाहिए, या यदि यह पर्याप्त नहीं है तो sha 256 या sha 512 एल्गोरिदम – Petah

+1

** सल्टिंग ** पासवर्ड स्ट्रिंग का उपयोग कुछ हैश फ़ंक्शन के साथ किया जाना चाहिए। यह एक और तरीका नहीं है। – twnaing

+1

shd1() या इसके विपरीत md5() को जोड़ें नहीं।आप शून्य सकारात्मक लाभ के साथ सीपीयू चक्र बर्बाद कर रहे हैं और संभवतः वास्तव में आपकी सुरक्षा को और खराब कर रहे हैं। इसके बजाय sha1 का उपयोग करें (यह md5 से बेहतर है)। और एक नमक/यादृच्छिक पासवर्ड जनरेटर sha1/md5 के लिए * प्रतिस्थापन * नहीं है, वे कुछ ऐसा हैं जो हमेशा पासवर्ड के साथ काम करते समय * sha1/md5 के साथ * हमेशा उपयोग किए जाने चाहिए। कृपया अपने आप को एक पक्ष करो और आगे पढ़ें। –

3

http://ulogin.sourceforge.net/

काफी सुरक्षित और अच्छी तरह से सोचा है। यह भी बहुत विन्यास योग्य है।

+1

दस्तावेज़ीकरण कहां है? अच्छी तरह से काम नहीं है, स्थापना में त्रुटि। – B4NZ41

+0

मुझे इसके साथ बुरा समय था (शायद मैं इसे गलत इस्तेमाल कर रहा हूं? मुझे नहीं पता कि प्रलेखन exapmple में टिप्पणियां है), मैं वर्तमान में कुछ और ढूंढ रहा हूं। –

संबंधित मुद्दे