यह थोड़ा सभी सुरक्षा से संबंधित एक पोस्ट में सर्वोत्तम प्रथाओं में रटना कठिन है, लेकिन कर रहे हैं कि यह क्या है के लिए लायक, इस मुद्दे पर मेरा लेना है।
प्रमाणीकरण प्रदान करना और सुरक्षित करना यह दो अलग-अलग चीजें हैं। पासपोर्टजेएस प्रमाणीकरण से संबंधित सबकुछ को संभालने में सक्षम होगा, लेकिन यह मूर्खतापूर्ण या अभिभूत होने से रोकने वाली पूरी तरह से अलग चीज है।
एक रिवर्स प्रॉक्सी (आरपी) के पीछे पासवर्डजेएस डालने का एक (बड़ा) कारण यह है कि आप HTTP से संबंधित किसी भी चीज़ के लिए रक्षा की पहली पंक्ति प्रदान करने में सक्षम होंगे: हेडर/बॉडी लम्बाई/डेटा, अनुमत विधियों, डुप्लिकेट/अवांछित शीर्षलेख, आदि
Nginx/Apache/HAProxy सभी इन मामलों को संभालने के लिए उत्कृष्ट सुविधाएं प्रदान करते हैं और ऊपर की तरफ, आपको चिंताओं का एक अच्छा अलगाव मिलता है: रिवर्स प्रॉक्सी हैंडल सुरक्षा दें और पासपोर्टजेएस हैंडल दें प्रमाणीकरण। वास्तुकला के अनुसार, यह और अधिक समझ में आएगा क्योंकि आप पासपोर्टजेएस नोड्स की संख्या और बुनियादी ढांचे को छिपाने में सक्षम होंगे। असल में, आप इसे दिखाना चाहते हैं क्योंकि आपके क्लाइंट के लिए केवल एक प्रविष्टि बिंदु है। स्केलिंग आउट इस वास्तुकला के साथ भी आसान होगा। हमेशा के रूप में, सुनिश्चित करें कि आपके आरपी रैखिक रूप से स्केल करने के लिए जितना संभव हो उतना छोटा राज्य रखें, अधिमानतः कोई भी नहीं।
अपने आरपी को सही तरीके से कॉन्फ़िगर करने के लिए, आपको वास्तव में समझना होगा कि पासपोर्टजेएस प्रोटोकॉल (यदि आप केवल फेसबुक के मुकाबले अधिक प्रमाणीकरण विधियां प्रदान करना चाहते हैं)।इसे जानना, आप अपने आरपी (एस) को
- किसी भी अस्वीकृत अनुरोध HTTP विधि (ट्रेसी, विकल्प, पुट, डिलीट इत्यादि) को अस्वीकार कर सकते हैं।
- किसी ज्ञात आकार से अनुरोध/हेडर/पेलोड को अस्वीकार करें।
- अपने पासपोर्टजेएस नोड्स को लोड-बैलेंस करें।
एक बात की तलाश में होने के लिए लोड संतुलन के मामले में चिपचिपा सत्र हैं। कुछ प्रामाणिक अपने सभी राज्य को एन्क्रिप्टेड कुकी में संग्रहीत करते हैं, अन्य लोग एक साधारण सत्र हैंडल होंगे, जिसे केवल सत्र बनाने वाले नोड द्वारा समझा जा सकता है। इसलिए जब तक आपके पास बाद के प्रकार के लिए सत्र साझाकरण सक्षम नहीं है (यदि आपको पासपोर्टजेएस लचीलापन की आवश्यकता है), तो आपको चिपचिपा सत्रों को संभालने के लिए अपने आरपी को कॉन्फ़िगर करना होगा। यह अधिकतम राज्य होना चाहिए जो उन्हें संभालना चाहिए। सही तरीके से कॉन्फ़िगर किया गया है, यदि आपको आरपी को पुनरारंभ करने की आवश्यकता है तो यह भी काम कर सकता है।
के रूप में आप लगन से कहा, toobusy
(या समतुल्य) जगह थ्रॉटल संभाल करने में होना चाहिए। मेरे अनुभव में, थ्रॉटलिंग के संबंध में अन्य आरपी की तुलना में हैप्रोक्सी काम करना थोड़ा आसान है, लेकिन toobusy
को भी ठीक काम करना चाहिए, खासकर अगर आप इससे पहले से परिचित हैं।
एक और चीज जो आपके नियंत्रण में हो या न हो, नेटवर्क विभाजन है। जाहिर है, आरपी को सुलभ होने की जरूरत है, लेकिन उन्हें आपके पासपोर्टजेएस नोड्स के लिए रिले के रूप में कार्य करना चाहिए। यदि संभव हो तो सर्वोत्तम अभ्यास, अपने बैकएंड सर्वर से अलग नेटवर्क/डीएमजेड पर अपने प्रमाणीकरण नोड्स डालना है, ताकि वे आरपी के माध्यम से सीधे नहीं पहुंच सकें। अगर समझौता किया गया है, तो उन्हें बैकएंड/आंतरिक नेटवर्क पर पत्थर लगाने के रूप में इस्तेमाल नहीं किया जाना चाहिए।
आपके उत्तर के लिए धन्यवाद, डैनियल! – Lucky