के साथ छवि संसाधनों की सुरक्षा करना मैंने कई वेब सेवाएं बनाई हैं जो JSON डेटा का उत्पादन/उपभोग करती हैं और मैंने उन्हें OAuth2 और Bearer Tokens का उपयोग करके संरक्षित किया है, जो ठीक काम करता है।OAuth2 Bearer Tokens
हालांकि मुझे एक ऐसी वेब सेवा बनाने की आवश्यकता है जो JSON (इसलिए जेपीईजी/पीएनजी डेटा) की बजाय छवियां उत्पन्न करे। स्थिरता के लिए मैं ओएथ 2/बेयरर टोकन के साथ सेवा की रक्षा करना चाहूंगा, लेकिन ऐसा करने से ब्राउज़र आधारित अनुप्रयोगों में उपभोग करने के लिए सेवा को और चुनौतीपूर्ण बना दिया जाएगा जो <img> टैग का उपयोग करके छवि डेटा प्रदर्शित करना चाहते हैं, क्योंकि <img> टैग आवश्यक Authorization: Bearer ...bearer-token...
HTTP शीर्षलेख नहीं भेजेगा।
मैं दो तरीकों से इस दौर देख सकते हैं:
सेवा एचटीएमएल 5 से एक्सएचआर Level2 और ब्लॉब और ब्लॉब यूआरएल योजनाओं का प्रयोग करेंगे कीब्राउज़र आधारित ग्राहक एक ब्लॉब के रूप में छवि डेटा पुनः प्राप्त करने, ब्लॉब का उपयोग ब्लॉब के लिए यूआरएल उत्पन्न करने के लिए यूआरएल योजना और उसके बाद गतिशील रूप से एक आईएमजी टैग बनाएं जो ब्लॉब यूआरएल को संदर्भित करता है। एक छवि प्रदर्शित करने के लिए बहुत सारे काम!
बेयरर टोकन के अतिरिक्त एक एचटीपी कुकी उत्पन्न करने के लिए OAuth2 आधारभूत संरचना को संशोधित करें। प्राधिकरण को स्वीकार करने के लिए सेवा प्राधिकरण को संशोधित करें: बेयरर ... OAuth2 शीर्षलेख या कुकी पहचान के सबूत के रूप में। कुकरी को बीयरर टोकन, httpOnly आदि के समान जीवनकाल होना चाहिए। ब्राउज़र आधारित क्लाइंट सेवा तक पहुंच प्राप्त करने के लिए ब्राउज़र कुकी समर्थन पर भरोसा कर सकते हैं, <img> टैग के माध्यम से छवि डेटा को सामान्य रूप से प्रस्तुत कर सकते हैं। ब्राउज़र क्लाइंट के लिए उपयोग करने में आसान है, लेकिन गैर मानक। सुरक्षा जोखिम प्रोफाइल भालू टोकन या कुकी के लिए समान लगता है।
क्या मैं बाद के दृष्टिकोण के साथ किसी भी सुरक्षा समस्या को देख रहा हूं?
क्या ओएथ 2 के साथ छवि/मीडिया संसाधनों की सुरक्षा के लिए कोई वैकल्पिक दृष्टिकोण है?
मैं क्वेरी पैरामीटर तंत्र को भूल गया/छूट गया था, स्पष्ट रूप से यह उपयोग केस है जिसे धन्यवाद के लिए बनाया गया है। – cdivilly
इसका मतलब है, सर्वर पक्ष में (फ़िल्टर में हो सकता है), हमें पहले 'प्राधिकरण' शीर्षलेख की जांच करनी होगी; यदि यह खाली है, तो 'request.get पैरामीटर (" access_token ") 'जांचें? –