बॉब कुछ हासिल करने के लिए वेब एप्लिकेशन का उपयोग करता है। तथा:
- उनका ब्राउज़र आहार पर है, इसलिए यह कुकीज़ का समर्थन नहीं करता है ।
- वेब एप्लिकेशन एक लोकप्रिय है, यह एक निश्चित समय पर बहुत सारे उपयोगकर्ताओं के साथ काम करता है - इसे अच्छी तरह से स्केल करना होगा । जब तक सत्र रखने से एक साथ कनेक्शन की संख्या की सीमा लागू हो जाएगी , और निश्चित रूप से, एक गैर-नगण्य प्रदर्शन जुर्माना लाएगा , हम सत्र-कम करने की व्यवस्था कर सकते हैं :)
कुछ महत्वपूर्ण नोट:
- हमारे पास परिवहन सुरक्षा ( HTTPS और इसके सबसे अच्छे दोस्त) हैं;
- पर्दे के पीछे, वेब एप्लिकेशन वर्तमान उपयोगकर्ता की ओर से बाहरी सेवाओं के लिए बहुत सारे संचालन को दर्शाता है (जो सिस्टम बॉब को उनके उपयोगकर्ताओं में से एक के रूप में पहचानते हैं) - इसका मतलब है कि हमें उन्हें बॉब की साख को अग्रेषित करना होगा ।
अब, हम बॉब (प्रत्येक अनुरोध पर) को कैसे प्रमाणित करते हैं? ऐसी बात को लागू करने के लिए कौन सा उचित तरीका होगा?
- HTML फॉर्म के माध्यम से क्रेडेंशियल्स के साथ टेनिस खेलना छिपे हुए फ़ील्ड ... गेंद में क्रेडेंशियल्स ( उपयोगकर्ता नाम और पासवर्ड ) शामिल हैं और दो रैकेट क्रमशः ब्राउज़र और वेब एप्लिकेशन हैं। दूसरे शब्दों में, हम कुकीज़ के बजाय फ़ॉर्म फ़ील्ड के माध्यम से डेटा को आगे और पीछे ले जा सकते हैं। प्रत्येक वेब अनुरोध पर, ब्राउज़र क्रेडेंशियल पोस्ट करता है। हालाँकि, सिंगल-पेज एप्लिकेशन के मामले में , यह टेनिस खेलने के बजाय एक रबर की दीवार के खिलाफ स्क्वैश खेलने की तरह लग सकता है , क्योंकि क्रेडेंशियल्स वाले वेब फॉर्म को वेब पेज के पूरे जीवनकाल तक जीवित रखा जा सकता है। (और सर्वर को क्रेडेंशियल वापस देने के लिए कॉन्फ़िगर नहीं किया जाएगा)।
- पेज के संदर्भ में उपयोगकर्ता नाम और पासवर्ड संग्रहीत करना - जावास्क्रिप्ट चर आदि सिंगल-पेज यहाँ, IMHO की आवश्यकता है।
- एन्क्रिप्टेड टोकन आधारित प्रमाणीकरण। इस स्थिति में, लॉग-इन कार्रवाई एक एन्क्रिप्टेड सुरक्षा टोकन (उपयोगकर्ता नाम + पासवर्ड + कुछ और) की पीढ़ी के परिणामस्वरूप होगी। यह टोकन क्लाइंट को वापस दिया जाएगा और आगामी अनुरोध टोकन के साथ होंगे। इसका कोई मतलब भी है क्या? हम पहले से ही HTTPS है ...
- अन्य...
- अंतिम उपाय: ऐसा न करें, सत्र में क्रेडेंशियल्स स्टोर करें! सत्र अच्छा है। कुकीज़ के साथ या बिना।
क्या कोई वेब / सुरक्षा चिंता आपके दिमाग में आती है, पहले से वर्णित विचारों के बारे में? उदाहरण के लिए,
- टाइम-आउटिंग - हम एक टाइमस्टैम्प रख सकते हैं , क्रेडेंशियल्स के साथ (टाइम-स्टैम्प = जिस समय बॉब ने अपनी साख दर्ज की है)। जैसे जब अब - टाइमस्टैम्प> दहलीज , हम अनुरोध को अस्वीकार कर सकते हैं।
- क्रॉस-साइट स्क्रिप्टिंग सुरक्षा - किसी भी तरह से अलग नहीं होना चाहिए, है ना?
इस पढ़ने के लिए समय निकालने के लिए बहुत बहुत धन्यवाद :)