2012-04-10 9 views
15

मैं ऐसी साइट बना रहा हूं जिसके लिए उपयोगकर्ता प्रमाणीकरण और प्रमाणीकरण की आवश्यकता है। मेरा प्रारंभिक विचार फ्लास्क ढांचे का उपयोग कर आवेदन लिखना था। हालांकि, I learned that Flask doesn't have a built in authentication system। इसमें एक एक्सटेंशन फ्लास्क-लॉगिन है, लेकिन मुझे यह पुष्टि नहीं मिली है कि यह एक्सटेंशन अच्छी तरह लिखा गया है या नहीं। मैंने पढ़ा है कि प्रमाणीकरण गलत प्राप्त करना बहुत आसान है।वेब प्रमाणीकरण प्रणाली को रोल करना

  1. यह है जो प्रमाणीकरण प्रणाली में बनाया गया है Django या web2py की तरह कुछ करने के लिए स्विच करने के लिए एक अच्छा विचार हो सकता है?

  2. क्या अच्छा वेब प्रोग्रामर आम तौर पर कोशिश करने और सही प्रमाणीकरण सिस्टम का उपयोग करने का विकल्प चुनते हैं, क्योंकि वे खुद को रोल करने की कोशिश कर रहे हैं?

  3. क्या कोई अच्छी मार्गदर्शिका है जो प्रमाणीकरण/प्राधिकरण प्रणाली के संबंध में सर्वोत्तम प्रथाओं को प्रदर्शित करती है?

धन्यवाद दोस्तों!

+5

कभी भी, कभी भी अपनी खुद की प्रमाणीकरण योजना को रोल करने का प्रयास न करें। प्रश्न पूछने के लिए +1। –

+0

क्या आपके पास कोई विशेष आवश्यकताएं हैं (जैसे सिंगल साइन-ऑन) या क्या आप बस एक HTTPS पृष्ठ पर मूल उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण चाहते हैं? –

+2

@AdamLiss जब तक आपको पता न हो कि आपको यह करना है, और आप समझते हैं कि इसे वास्तव में मजबूत कैसे बनाया जाए और कोई और आपको भुगतान कर रहा हो। – Marcin

उत्तर

6

यदि आप अपनी वेबसाइट (यानी, प्रमाणीकरण और प्रमाणीकरण) में उपयोगकर्ता लॉगिन क्षमता जोड़ना चाहते हैं तो मौजूदा ढांचे का उपयोग करें। जब तक आप सुरक्षा में विशेषज्ञ न हों, तब तक सिस्टम को सुरक्षित रखने की संभावना 0 के करीब है। यह उस भाषा के बावजूद लागू होता है जब आप प्रोग्राम करते हैं और आप जिस फ्रेमवर्क का उपयोग कर रहे हैं उसके बावजूद।

दुर्भाग्यवश, मैंने लोगों को इस प्रश्न का उत्तर निम्न प्रकार से देखा है: "यह शुरुआती के रूप में कोड के लिए कठिन और मजेदार नहीं है। आपको अपना डेटा स्टोर करने के लिए एक जगह चाहिए (चलो एक MySQL डेटाबेस कहें)। आपको चाहिए पासवर्ड, इत्यादि के एनक्रीप्टेड संस्करणों को स्टोर करें आदि " यह जवाब पूरी तरह से असंगत है।

मुफ्त प्रमाणीकरण ढांचे उपलब्ध हैं, उन्हें उपयोग करें। उदाहरण के लिए, Django और web2py में अंतर्निहित प्रमाणीकरण सिस्टम हैं। कई ढांचे अंतर्निहित प्रमाणीकरण के साथ नहीं आते हैं (जैसे फ्लास्क, वेबपी); इसका मतलब यह नहीं है कि आपको अपना खुद का ढांचा बनाना चाहिए। इसका मतलब है कि आपको तीसरे पक्ष प्रमाणीकरण सॉफ्टवेयर मिलना चाहिए। फ्लास्क के लिए, फ्लास्क-लॉगिन है।

तो, अपने मूल प्रश्नों के उत्तर दिए गए हैं:

1.) हाँ, या एक सत्यापित 3 पक्ष के सॉफ़्टवेयर प्रणाली को एकीकृत।

2.) हां, सर्वोत्तम प्रथाओं का कहना है कि अपनी स्वयं की प्रमाणीकरण प्रणाली लिखें। पहले से ही बनाया गया है कि एक का प्रयोग करें।

3.) आपको प्रमाणीकरण प्रणाली बनाने के लिए एक गाइड की आवश्यकता नहीं है, क्योंकि आपको एक निर्माण नहीं करना चाहिए। हालांकि, OWASP एक महान सुरक्षा संसाधन है।

यहां एक संक्षिप्त सारांश है: अपनी खुद की प्रमाणीकरण प्रणाली न लिखें। एक पूर्व-निर्मित प्रमाणीकरण प्रणाली का उपयोग करें जो विश्वसनीय है। अगर किसी के पास प्रमाणीकरण प्रणाली के लिए कोई सिफारिश है जिसका उपयोग पायथन के साथ किया जा सकता है, तो उन्हें पोस्ट करने में संकोच न करें।

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