मैं एक JSON/REST वेब एपीआई विकसित कर रहा हूं, जिसके लिए मैं विशेष रूप से तृतीय पक्ष वेबसाइटों को AJAX के माध्यम से अपनी सेवा कॉल करने में सक्षम होना चाहता हूं। इसलिए, मेरी सेवा प्रसिद्ध सीओआरएस हेडर भेज रही है:सीओआरएस को सक्षम करने के लिए सुरक्षित कब है?
Access-Control-Allow-Origin: *
जो तृतीय पक्ष साइटों को AJAX के माध्यम से मेरी सेवा कॉल करने की अनुमति देता है। अब तक सब ठीक है।
हालांकि, मेरे वेब एपीआई का एक उपखंड गैर-सार्वजनिक है और प्रमाणीकरण की आवश्यकता है (ओएथ और एक एक्सेस_टोकन कुकी के साथ सुंदर मानक सामग्री)। क्या यह मेरी साइट के इस हिस्से पर सीओआरएस को सक्षम करना सुरक्षित है?
एक तरफ, यह अच्छा होगा अगर तीसरे पक्ष की वेबसाइटों में AJAX क्लाइंट हो सकते हैं जो मेरी सेवा के इस हिस्से से भी बातचीत करते हैं। हालांकि, कारण यह है कि पहली जगह एक ही मूल नीति है, यह जोखिम भरा हो सकता है। आप अपनी निजी सामग्री तक पहुंचने में सक्षम होने के लिए बाद में किसी भी वेबसाइट को नहीं चाहते हैं।
जिस परिदृश्य से मुझे डर है वह यह है कि कोई उपयोगकर्ता वेबसाइट पर या वेबसाइट पर जिस वेबसाइट पर विश्वास करता है, उसके माध्यम से लॉग इन करता है, और वह लॉगआउट करना भूल जाता है। क्या यह मौजूदा सत्र का उपयोग करके अपनी निजी सामग्री तक पहुंचने के लिए बाद में अन्य सभी वेबसाइटों को अनुमति देगा?
तो मेरे सवालों का:
- यह गैर-सार्वजनिक सामग्री पर CORS सक्षम करने के लिए कभी सुरक्षित है?
- यदि कोई CORS सक्षम सर्वर कुकी के माध्यम से session_token सेट करता है, तो क्या यह कुकी CORS सर्वर या मुख्य वेब-पेज सर्वर के डोमेन के अंतर्गत सहेजी जाएगी?
ध्यान दें कि आप केवल संसाधनों पर सीओआरएस हेडर भेज सकते हैं जिन्हें आप अन्य मूल से अन्य लोगों तक पहुंचाना चाहते हैं। और आप केवल उन उत्पत्तियों तक सीओआरएस पहुंच को सीमित कर सकते हैं जिनकी आप अपेक्षा करते हैं। –
आदर्श, मैं सभी संसाधनों को किसी भी मूल से सुलभ होना चाहता हूं, अगर सुरक्षा परमिट हो। वैध प्रमाण-पत्र प्रदान करने के लिए यह अभी भी उपयोगकर्ता तक है। मैं बस यह सुनिश्चित करना चाहता हूं कि मैं दुर्भावनापूर्ण वेबसाइटों से क्रॉस-साइट स्क्रिप्टिंग हमलों के लिए दरवाजा नहीं खोल रहा हूं। – Jeroen