सामग्री सुरक्षा नीति: पृष्ठ की सेटिंग ने एक संसाधन को लोड करने से रोक दिया है


104

मैं पेज लोड पर कैप्चा का उपयोग कर रहा हूं , लेकिन यह कुछ सुरक्षा कारणों के कारण अवरुद्ध हो रहा है।

मैं इस समस्या का सामना कर रहा हूँ:

    सामग्री सुरक्षा नीति: पृष्ठ की सेटिंग ने लोडिंग को अवरुद्ध कर दिया है
    के संसाधन पर
    http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit
    ("स्क्रिप्ट-एसकेटी http://test.com:8080 'असुरक्षित-इनलाइन' 'असुरक्षित-eval"))।

मैंने निम्नलिखित जावास्क्रिप्ट और मेटा टैग का उपयोग किया है:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<script src="http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>

अगर मैं तुम होते, तो मैं इसे सर्वर साइड कोड के साथ करने की कोशिश करता, और जावास्क्रिप्ट नहीं। जेएस कॉर्स और इसी तरह की चीजों के साथ बहुत अच्छा नहीं है। Google के पास इसके लिए विकल्प हैं ..
गोगोल

मैंने javascriptइस प्रश्न में एक टैग जोड़ा है , क्योंकि प्रश्न का jQuery से कोई लेना-देना नहीं है। यह किसी भी जावास्क्रिप्ट को प्रभावित करता है। वास्तव में, यह प्रश्न अधिक उपयोगी होगा यदि आप jQueryटैग को पूरी तरह से हटा दें , लेकिन ऐसा करने के लिए यह मेरी जगह नहीं है।
मिन्ंजो

2
अब हटाया गया उत्तर सही है। "सामग्री सुरक्षा नीति: पृष्ठ की सेटिंग ने संसाधन को लोड करने से रोक दिया" का एक कारण यह है कि यदि जावास्क्रिप्ट ब्राउज़र में सक्षम या अवरुद्ध नहीं है (उदाहरण के लिए NoScript )। उस स्थिति में, त्रुटि आउटपुट का हिस्सा "अज्ञात निर्देश 'नोस्क्रिप्ट-मार्कर को संसाधित नहीं कर सकता है "
पीटर मोर्टेंसन

मैं उपयोग करने के लिए अन्य सुझाव पर टिप्पणी करने में असमर्थ हूं: विन्यास, इसलिए मुझे लगता है कि मैं इसे यहां जोड़ दूंगा। किसी के बारे में जाने की सलाह देते हैं: कॉन्फ़िगर करें और सुरक्षा सेट करें ।sp.enable to false। बाकी सभी ने कहा कि यह एक भयानक विचार है। मैं केवल यह कहना चाहता हूं कि यह वह समाधान है जिसका मैंने उपयोग करने का निर्णय लिया है। हर जगह इन त्रुटियों के टन के साथ बहुत से साइटों ने अभी-अभी फ़ायरफ़ॉक्स में मेरे लिए पूरी तरह से काम करना बंद कर दिया है। क्रोम अभी भी उन्हें लोड करता है। यह क्यों है, इसके बारे में अधिक जानने के बिना, Security.csp.en की स्थापना करने के लिए झूठी उन साइटों को फिर से फ़ायरफ़ॉक्स का उपयोग करने की अनुमति देता है, और मैं फ़ायरफ़ॉक्स को क्रोम के साथ पसंद करता हूं। यदि
एलीट

जवाबों:


85

आपने कहा है कि आप केवल अपनी साइट (स्वयं) से स्क्रिप्ट लोड कर सकते हैं। फिर आपने किसी अन्य साइट ( www.google.com ) से स्क्रिप्ट लोड करने का प्रयास किया है और, क्योंकि आपने इसे प्रतिबंधित कर दिया है, आप नहीं कर सकते। यह सामग्री सुरक्षा नीति (CSP) का संपूर्ण बिंदु है ।

आप अपनी पहली पंक्ति को इसमें बदल सकते हैं:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.google.com">

या, वैकल्पिक रूप से, यह उस लाइन को पूरी तरह से हटाने के लायक हो सकता है जब तक कि आपको सीएसपी के बारे में अधिक पता न चल जाए। आपकी वर्तमान सीएसपी बहुत ढीला वैसे भी (अनुमति देता है unsafe-inline, unsafe-evalऔर एक default-srcकी *तो यह शायद बहुत कुछ ख़ास नहीं कर रहा है, ईमानदार होना,)।


5
यह एक असुरक्षित वर्कअराउंड है - Google का CSP चेकर इस लाइन को कई गंभीर विफलता देता है। (दुर्भाग्य से एक अच्छे सीएसपी को लागू करना तुच्छ नहीं है और इसे प्रति साइट पर अनुकूलित करने की आवश्यकता है।)
फ्रीवेकर

8
मैं इस टिप्पणी के साथ मुद्दा उठाता हूं। CSP के साथ समस्याएँ मूल CSP के कारण हैं। यह सब उत्तर दिया गया था कि प्रश्न के उत्तर में www.google.com डोमेन को इसमें जोड़ा गया था। क्या मैं उसी समय सीएसपी को और सख्त करने का सुझाव दे सकता था? संभवतः, लेकिन मैं कहूंगा कि सवाल के दायरे से बाहर है। विशेष रूप से यह पहले से ही स्पष्ट था कि ओपी सीएसपी से परिचित नहीं था।
बैरी पोलार्ड

3
अब सीएसपी "असुरक्षित" है? यह यकीनन है। असुरक्षित-इनलाइन और असुरक्षित-निकासी की अनुमति देना और * का एक डिफ़ॉल्ट स्रोत सीएसपी के उद्देश्य के बहुत कुछ को पराजित करता है (इसलिए मैंने इसे हटाने का सुझाव भी दिया था), लेकिन यह याद रखना चाहिए कि सीएसपी कभी भी ब्राउज़र नियंत्रण को ढीला नहीं कर सकता है, भले ही यह नीति खो गई हो एक पृष्ठ पर कुछ नियंत्रण जोड़ना, जिसमें कोई CSP नहीं है - जैसा कि इस तथ्य से स्पष्ट है कि यह Google स्क्रिप्ट को रोक रहा है! इसलिए "असुरक्षित" शायद एक महान शब्द नहीं है। "बहुत ही सार्थक होने के लिए शिथिलता" शायद इसे बेहतर बनाने का एक बेहतर तरीका है। तो हाँ, यह सीएसपी वांछित होने के लिए बहुत कुछ छोड़ देता है लेकिन इसमें Google को जोड़ना "असुरक्षित समाधान" नहीं है।
बैरी पोलार्ड

3
उचित बिंदु यह है कि कोई भी सीएसपी ("सब कुछ ठीक है) के अलावा आम तौर पर किसी से बेहतर नहीं होगा।
फ्रीवल्कर

वहाँ के साथ एक छोटी सी समस्या है, मैं chrome://global/content/elements/panel.js(फ़ायरफ़ॉक्स) से वह त्रुटि प्राप्त कर रहा हूं जो सभी पृष्ठों पर डिबग को अक्षम करता है
AaA

14

Visual Studio 2019 में चल रहे मेरे ASP.NET कोर कोणीय प्रोजेक्ट के साथ , कभी-कभी मुझे यह त्रुटि संदेश फ़ायरफ़ॉक्स कंसोल में मिलता है:

सामग्री सुरक्षा नीति: पृष्ठ की सेटिंग ने इनलाइन ("डिफ़ॉल्ट- src") पर एक संसाधन को लोड करने से रोक दिया।

Chrome में, इसके बजाय त्रुटि संदेश है:

संसाधन लोड करने में विफल: सर्वर ने 404 की स्थिति के साथ प्रतिक्रिया दी ()

मेरे मामले में इसका मेरी सामग्री सुरक्षा नीति से कोई लेना-देना नहीं था, लेकिन इसके बजाय मेरे हिस्से पर टाइपस्क्रिप्ट त्रुटि का परिणाम था।

टाइपस्क्रिप्ट त्रुटि के लिए अपनी IDE आउटपुट विंडो जांचें, जैसे:

> ERROR in src/app/shared/models/person.model.ts(8,20): error TS2304: Cannot find name 'bool'.
>
> i 「wdm」: Failed to compile.

नोट: चूंकि यह प्रश्न इस त्रुटि संदेश के लिए Google पर पहला परिणाम है।


11

मेरे पास एक समान त्रुटि प्रकार था। सबसे पहले, मैंने कोड में मेटा टैग जोड़ने की कोशिश की, लेकिन यह काम नहीं किया।

मुझे पता चला कि nginx वेब सर्वर पर आपके पास एक सुरक्षा सेटिंग हो सकती है जो चलाने के लिए बाहरी कोड को ब्लॉक कर सकती है:

# Security directives
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'  https://ajax.googleapis.com  https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://fonts.gstatic.com  https://themes.googleusercontent.com; frame-src https://player.vimeo.com https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";

सामग्री-सुरक्षा-नीति की जाँच करें। आपको स्रोत संदर्भ जोड़ने की आवश्यकता हो सकती है।


4
ध्यान दें कि यह असुरक्षित है - इस Content-SecurityPolicy को Google के CSP इवैल्यूएटर से एक उच्च गंभीरता विफलता मिलती है ।
17

1

मैं इस हेडर के साथ अपने सभी आवश्यक साइटों को अनुमति देने में कामयाब रहा:

header("Content-Security-Policy: default-src *; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' stackexchange.com");                    

0

मुझे इसके चारों ओर कोणीय के दोनों संस्करण को अपग्रेड करके मिला है जो मैं (v8 -> v9 से) और टाइपस्क्रिप्ट (3.5.3 से - नवीनतम) के संस्करण का उपयोग कर रहा था।


1
स्पष्टीकरण क्या है?
पीटर मोर्टेंसन

-7

आप उन्हें अपने ब्राउज़र में अक्षम कर सकते हैं।

फ़ायर्फ़ॉक्स

about:configफ़ायरफ़ॉक्स एड्रेस बार में टाइप करें और उसे ढूंढें security.csp.enableऔर सेट करें false

क्रोम

आप Disable Content-Security-PolicyCSP को अक्षम करने के लिए एक्सटेंशन को इंस्टॉल कर सकते हैं ।


82
अस्थायी डिबगिंग से हटकर, कभी भी ऐसा न करें। यह आपके ब्राउज़र की एक महत्वपूर्ण सुरक्षा विशेषता है।
हैल

4
यह केवल इसे स्थानीय रूप से ठीक करेगा, और इसके अलावा, यह आपके ब्राउज़र को बहुत अधिक असुरक्षित बनाता है।
नील चौधरी

3
क्या यह "सलाह" परीक्षण / डिबगिंग के लिए है? यदि ऐसा है, तो इसका जवाब लोगों के अनजान समुदाय में खतरनाक कमजोरियों को फैलाने से बचने के लिए दिया जाना चाहिए। वैसे, जैसा @NeilChowdhury ने कहा, यह इसे आपके सिस्टम पर ठीक कर देगा, वास्तविक वेबसाइट आगंतुकों के बारे में क्या?
Fr0zenFyr

13
अस्थायी समाधान लेकिन डिबगिंग के लिए सहायक (प्लस एक)
नरेन्द्र

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