अखंडता और क्रॉसोरिगिन विशेषताएँ क्या हैं?


362

बूटस्ट्रैप एलसीडी ने हाल ही में अपने लिंक बदल दिए हैं। अब यह इस तरह दिखता है:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" 
rel="stylesheet" 
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" 
crossorigin="anonymous">

integrityऔर crossoriginविशेषताओं का क्या मतलब है? वे स्टाइलशीट के लोडिंग को कैसे प्रभावित करते हैं?

जवाबों:


237

Subresource Integrity को कार्यान्वित करने के लिए बूटस्ट्रैप CDN में दोनों विशेषताओं को जोड़ा गया है ।

Subresource वफ़ादारी एक व्यवस्था है जिसके द्वारा उपयोगकर्ता एजेंटों की पुष्टि कर सकें कि एक प्राप्त किए गए संसाधन अप्रत्याशित हेरफेर के बिना दिया गया है परिभाषित करता है संदर्भ

अखंडता विशेषता ब्राउज़र को फ़ाइल स्रोत की जांच करने की अनुमति देना है ताकि यह सुनिश्चित हो सके कि स्रोत में हेरफेर किया गया है तो कोड कभी भी लोड नहीं होता है।

क्रॉसोरिगिन विशेषता तब मौजूद होती है जब एक अनुरोध को 'CORS' का उपयोग करके लोड किया जाता है जो अब 'समान-मूल' से लोड नहीं होने पर SRI जाँच की आवश्यकता है। क्रॉसोरिगिन पर अधिक जानकारी

बूटस्ट्रैप सीडीएन कार्यान्वयन पर अधिक विवरण


2
बस w3c html सत्यापनकर्ता का उपयोग किया और "अखंडता" विशेषता का उपयोग करते समय यह संदेश मिला:Attribute integrity not allowed on element link at this point.
टॉमस गोंजालेज

9
@TomasGonzalez मुझे लगता है कि आप सुरक्षित रूप से मान सकते हैं कि w3c टूल अभी तक SRI समर्थन को शामिल करने के लिए अपडेट नहीं किया गया है
Josh_at_Savings_Champion

5
FYI करें: सत्यापनकर्ता के साथ एक बग भी दर्ज करें: github.com/validator/validator/issues/151
jonathanKingston

72
यहां W3C HTML चेकर (उर्फ सत्यापनकर्ता) का अनुरक्षक। हाँ, क्षमा करें, चेकर अभी तक integrityविशेषता के बारे में कुछ भी नहीं जानता है । लेकिन मैं जल्द ही इसके लिए समर्थन जोड़ दूंगा, जैसा कि github.com/validator/validator/issues/151 में अनुरोध किया गया है । इसलिए जब आप लैंड कर सकते हैं तो नोटिफिकेशन पाने के लिए उस मुद्दे को सब्सक्राइब करना चाहते हैं।
साइडशोबर्कर

7
OnlineWebCheck.comintegrity विशेषता का समर्थन करता है (मैं उस चेकर का अनुचर हूं)।
अल्बर्ट विर्सच

112

अखंडता - एक संसाधन के हैश मान (एक चेकसम की तरह) को परिभाषित करता है जिसे ब्राउज़र को निष्पादित करने के लिए मिलान करना पड़ता है। हैश यह सुनिश्चित करता है कि फाइल अनमॉडिफाइड थी और इसमें अपेक्षित डेटा था। इस तरह ब्राउज़र विभिन्न (जैसे दुर्भावनापूर्ण) संसाधनों को लोड नहीं करेगा। ऐसी स्थिति की कल्पना करें जिसमें आपकी जावास्क्रिप्ट फाइलें सीडीएन पर हैक की गई थीं, और इसे जानने का कोई तरीका नहीं था। अखंडता विशेषता लोडिंग सामग्री से मेल खाती है जो मेल नहीं खाती।

क्रॉस-ऑरिजनल की परवाह किए बिना अमान्य SRI को ब्लॉक किया जाएगा (Chrome डेवलपर-उपकरण)। नीचे एनओएन-कोर मामले में जब अखंडता विशेषता मेल नहीं खाती है:

यहां छवि विवरण दर्ज करें

अखंडता की गणना का उपयोग करके किया जा सकता है : https://www.srihash.org/ या कंसोल में टाइप करना ( लिंक ):

openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A

क्रॉसोरिगिन - एक अलग मूल पर सर्वर से लोड होने पर उपयोग किए गए विकल्पों को परिभाषित करता है। (यहां देखें CORS (क्रॉस-ओरिजिनल रिसोर्स शेयरिंग): https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS )। यह प्रभावी रूप से ब्राउज़र द्वारा भेजे गए HTTP अनुरोधों को बदल देता है। यदि "क्रॉसोरिगिन" विशेषता को जोड़ा जाता है - तो इसका परिणाम मूल जोड़ने में होगा : <ORIGIN> कुंजी-मूल्य जोड़ी HTTP अनुरोध में जैसा कि नीचे दिखाया गया है।

यहां छवि विवरण दर्ज करें

क्रॉसोरिगिन को "अनाम" या "उपयोग-क्रेडेंशियल्स" के लिए सेट किया जा सकता है। दोनों का परिणाम मूल में होगा : अनुरोध में। उत्तरार्द्ध हालांकि यह सुनिश्चित करेगा कि क्रेडेंशियल्स की जांच की जाए। टैग में कोई भी क्रॉसोरिजिन विशेषता मूल के बिना अनुरोध भेजने का परिणाम नहीं देगी: कुंजी-मूल्य जोड़ी।

यहाँ एक मामला है जब CDN से "उपयोग-क्रेडेंशियल्स" का अनुरोध किया गया है:

<script 
        src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
        integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" 
        crossorigin="use-credentials"></script>

यदि क्रॉसोरिन गलत तरीके से सेट किया गया है, तो ब्राउज़र अनुरोध को रद्द कर सकता है।

यहां छवि विवरण दर्ज करें

लिंक
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / तत्व / लिंक

ब्लॉग
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity


6
बहुत उपयोगी जवाब!
एमिल कोनिंग

4
आपके उत्तर के लिए धन्यवाद। मुझे तकनीकी विवरण पसंद हैं!
एएच ट्रान

हम कैसे बता सकते हैं कि फ़ाइल की अखंडता वह है जिसे अभी तक हेरफेर नहीं किया गया है? कोई सलाह?
वादी तस्लीम

@ yon.fun: कृपया अपने स्वयं के लिंक जोड़ने के लिए संपादन का सुझाव न दें। हम यहां संभव स्पैम के लिए बहुत संवेदनशील हैं, भले ही आपकी सामग्री मूल्यवान हो।
halfer

1

तकनीकी रूप से, वफ़ादारी विशेषता केवल इसके साथ मदद करती है - यह डेटा स्रोत के उचित सत्यापन को सक्षम करती है। यही है, यह केवल ब्राउज़र को सीडीएन सर्वर पर स्थित स्रोत फ़ाइल द्वारा अनुरोध की गई मात्रा के साथ सही स्रोत फ़ाइल में संख्याओं को सत्यापित करने की अनुमति देता है।

इस स्रोत के स्थापित एन्क्रिप्टेड हैश मूल्य और ब्राउज़र में एक पूर्वनिर्धारित मूल्य के साथ इसकी जांच की गई अनुपालन के मामले में, थोड़ा गहराई में जाने पर, कोड निष्पादित होता है, और उपयोगकर्ता अनुरोध सफलतापूर्वक संसाधित होता है।

क्रॉसोरिगिन विशेषता डेवलपर्स को सीडीएन प्रदर्शन की दरों को अनुकूलित करने में मदद करती है, साथ ही वेबसाइट कोड को दुर्भावनापूर्ण स्क्रिप्ट से बचाती है।

विशेष रूप से, क्रॉसोरिगिन कुकीज़ को डाउनलोड करने या प्रमाणीकरण प्रक्रिया को पूरा किए बिना साइट के प्रोग्राम कोड को गुमनाम मोड में डाउनलोड करता है। इस तरह, यह उपयोगकर्ता डेटा के रिसाव को रोकता है जब आप पहली बार किसी विशिष्ट सीडीएन सर्वर पर साइट लोड करते हैं, तो नेटवर्क जालसाज आसानी से पते बदल सकते हैं।

स्रोत: https://yon.fun/what-is-link-integrity-and-crossorigin/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.