ध्यान दें:
बहुत से लोग प्रमाणीकरण के साथ "निजी" URL को भ्रमित करते दिखते हैं। इसके अलावा, कुछ भ्रम प्रतीत होता है कि किसी विश्वसनीय इकाई के माध्यम से लिंक भेजना दो-कारक प्रमाणीकरण पर एक प्रयास है। स्पष्ट होने के लिए, हम एक सार्वजनिक रूप से सुलभ संसाधन के बारे में बात कर रहे हैं, भले ही यह अनुमान लगाने के लिए पर्याप्त रूप से कठिन हो।
निजी URL का उपयोग करते समय, आपको हमेशा यह मान लेना चाहिए कि यह समझौता किया जा सकता है - आपको ऐसा URL डिज़ाइन करना चाहिए ताकि यदि वह समझौता किया जाए, तो भी संसाधन हमलावर को जानकारी लीक नहीं करेगा।
URL का अनुमान लगाने में निजी / कठिन पासवर्ड-आधारित प्रमाणीकरण के बराबर नहीं हैं। स्वभाव से, निजी URL बिल्कुल भी निजी नहीं हैं - वे सार्वजनिक रूप से सुलभ संसाधन हैं। मुझे लगता है कि "निजी" URL एक मिथ्या नाम है, बल्कि वे "अस्पष्ट" URL हैं।
ऐसे कुछ मामले हैं जहां "निजी" URL का उपयोग करना स्वीकार्य है, लेकिन वे पारंपरिक प्रमाणीकरण विधियों जैसे पासवर्ड प्रमाणीकरण या कुंजी-आधारित प्रमाणीकरण से स्वाभाविक रूप से कम सुरक्षित हैं।
जिन जगहों पर मैंने आमतौर पर "निजी" URL का उपयोग किया है, वे हैं:
- पासवर्ड रीसेट ईमेल
- सर्टिफिकेट जनरेशन ईमेल
- खाता / ईमेल पुष्टिकरण ईमेल
- खरीदी गई सामग्री (ebooks, आदि) का वितरण
- फ्लाइट चेक-इन, प्रिंट बोर्डिंग पास जैसी अन्य गलत चीजें, पारंपरिक प्रमाणीकरण के अलावा निजी URL का उपयोग करती हैं
यहां समानता यह है कि यादृच्छिक URL आमतौर पर केवल एक-शॉट ऑपरेशन के लिए अच्छे होते हैं। इसके अलावा, पारंपरिक प्रमाणीकरण और यादृच्छिक URL परस्पर अनन्य नहीं हैं - वास्तव में, संसाधन का वितरण करते समय अतिरिक्त सुरक्षा प्रदान करने के लिए उन्हें एक दूसरे के साथ संयोजन में उपयोग किया जा सकता है।
जैसा कि रॉबर्ट हार्वे ने इंगित किया है, एक यादृच्छिक / निजी URL का सुरक्षित रूप से उपयोग करने का एकमात्र तरीका पृष्ठ को गतिशील रूप से उत्पन्न करना और उपयोगकर्ता को URL इस तरह से प्रस्तुत करना है कि उपयोगकर्ता को अर्ध-प्रामाणिक माना जा सके। यह ईमेल, एसएमएस आदि हो सकता है।
बेतरतीब ढंग से उत्पन्न / निजी URL में आमतौर पर कुछ गुण होते हैं:
- यह उचित समय के बाद समाप्त हो जाना चाहिए
- यह एकल-उपयोग वाला URL होना चाहिए: IE इसे पहली बार एक्सेस करने के बाद समाप्त हो जाना चाहिए।
- यह उपयोगकर्ता के प्रमाणीकरण को किसी अन्य इकाई के लिए स्थगित कर देना चाहिए जो उपयोगकर्ता को सुरक्षित रूप से प्रमाणित करने के लिए भरोसा करता है। (ईमेल या एसएमएस आदि के माध्यम से लिंक भेजकर)
- आधुनिक कंप्यूटर के लिए समय सीमा से पहले समय सीमा समाप्ति में URL को बाध्य करना असंभव होना चाहिए - या तो संसाधन को उजागर करने वाले एपीआई को सीमित करके या पर्याप्त एंट्रोपी के साथ एक url समापन बिंदु बनाकर ऐसा अनुमान नहीं लगाया जा सकता है।
- यह उपयोगकर्ता के बारे में जानकारी को लीक नहीं करना चाहिए। IE: यदि पृष्ठ को पासवर्ड रीसेट करना है: पृष्ठ को अनुरोधकर्ताओं की खाता जानकारी प्रदर्शित नहीं करनी चाहिए। यदि ऐलिस पासवर्ड रीसेट लिंक का अनुरोध करता है और बॉब किसी तरह यूआरएल का अनुमान लगाता है, तो बॉब को यह जानने का कोई तरीका नहीं होना चाहिए कि वह किसके पासवर्ड को रीसेट कर रहा है।
- यदि यह उपयोगकर्ता के बारे में जानकारी को लीक करता है, तो इसका उपयोग पारंपरिक प्रमाणीकरण के शीर्ष पर किया जाना चाहिए, उदाहरण के लिए एक पृष्ठ किसी उपयोगकर्ता को प्रमाणित कर सकता है कि क्या उनके पास कुकी सेट है या यदि उनका सत्र_ मान्य है।
विभिन्न संसाधनों को सुरक्षा के विभिन्न स्तरों की आवश्यकता होती है। यदि आप कुछ दोस्तों के साथ एक गुप्त नुस्खा साझा करना चाहते हैं, उदाहरण के लिए, इसे साझा करने के लिए एक यादृच्छिक / निजी URL का उपयोग करना स्वीकार्य होगा। हालाँकि, यदि संसाधन का उपयोग किसी की पहचान को चुराने या अन्य सेवा प्रदाताओं के साथ अपने खातों से समझौता करने के लिए किया जा सकता है, तो आप संभवतः उस संसाधन तक पहुंच को सीमित करने के बारे में अधिक ध्यान रखेंगे।