2015-11-07 2 views
7

यदि मेरे पास किसी पृष्ठ पर किसी भिन्न डोमेन से कोई छवि है, और वह छवि HTTP मूल प्रमाणीकरण द्वारा संरक्षित है, तो ब्राउज़र उपयोगकर्ता को प्रमाणीकरण संवाद प्रस्तुत करेगा, इस तरह दिख रहा है: Auth Dialog यह देखते हुए कि साइट एक मंच है, इसलिए इसमें बहुत से उपयोगकर्ता द्वारा उत्पन्न सामग्री शामिल है, दुर्भावनापूर्ण उपयोगकर्ता के लिए इस तरह की एक छवि जोड़ने के लिए यह बहुत आसान है, फिर संभावित रूप से एक या दो लोगों के लॉगिन प्रमाण-पत्रों को फसल करना जो संभावित रूप से गिरते हैं यह और उनके साइट प्रमाण पत्र संवाद में टाइप करें।छवियों के लिए संकेत प्रदर्शित करने से HTTP मूल प्रमाणीकरण को रोकें

क्या उस क्रेडेंशियल प्रॉम्प्ट को छवि होस्टों की श्वेतसूची का उपयोग किए बिना प्रदर्शित करने से रोकने का कोई तरीका है (आदर्श नहीं है क्योंकि यह उपयोगकर्ताओं के लिए बहुत ही सीमित है) या यह सुनिश्चित करने के लिए कि छवि इसे अनुमति देने से पहले पहुंच योग्य है (जिसे आसपास काम किया जा सकता है)?

+0

क्योंकि यह ब्राउज़र कार्यक्षमता है, ओवरराइड करने का कोई तरीका नहीं है .. –

+0

आप केवल छवि को अकेले स्थान पर रख सकते हैं और उसी तक पहुंच सकते हैं। –

+0

यहां इस मुद्दे का स्रोत यह है कि आप किसी छवि का संदर्भ लेते हैं जिसे कोई और एक्सेस नहीं करना चाहता है। इस तरह के क्रॉस डोमेन संदर्भ संदिग्ध हैं। और जैसा कि आप देख सकते हैं कि वे गंभीर मुद्दों का कारण बन सकते हैं। संक्षेप में: आपको ऐसी छवि का संदर्भ नहीं देना चाहिए, आपको केवल अपनी साइट पर मौजूद सामग्री को प्रकाशित करना चाहिए। – arkascha

उत्तर

5

यदि आप छवि में crossorigin="anonymous" विशेषता जोड़ते हैं, तो यह अब प्रमाण-पत्रों के लिए संकेत नहीं देगा, हालांकि इसका मतलब यह भी है कि कोई भी कुकी या कैश किए गए क्रेडेंशियल्स को या तो भेजा जाएगा (जो मेरे मामले में कोई फर्क नहीं पड़ता)।

नोट हालांकि, यह केवल उन छवियों को प्रतिबंधित करता है जिन्हें Access-Control-Allow-Origin शीर्षलेख का उपयोग करके सेवा दी गई है, जिसे * या पृष्ठ की उत्पत्ति पर सेट किया जाना चाहिए। यदि हेडर छोड़ा गया है या गलत है, तो छवि प्रस्तुत नहीं की जाएगी, और इसके बजाय एक टूटी हुई छवि त्रुटि प्रदर्शित की जाएगी। यह इस समाधान को काफी बेकार बनाता है, लेकिन दुर्भाग्यवश ऐसा कोई विकल्प प्रतीत नहीं होता है।

+0

यह ध्यान देने योग्य है कि दुर्भाग्य से यह विशेष रूप से अच्छी तरह से समर्थित नहीं है। [ऐसा लगता है] (https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) कि यह केवल आईई 11 में जोड़ा गया था, और ओपेरा बिल्कुल इसका समर्थन नहीं करता है। –

+0

@NiettheDarkAbsol 4 मेयर ब्राउज़र पहले से ही इसका समर्थन करता है। मैं कहता हूं कि यह इसके लायक है। – Braiam

+0

ओह विशेषता को जोड़ने के लायक है, इसमें कोई संदेह नहीं है। लेकिन यह अभी भी ध्यान देने योग्य है। –

संबंधित मुद्दे