2013-05-18 5 views
7

मैं एक जटिल वेब ऐप से क्रोम पैक किए गए ऐप को बनाने की कोशिश कर रहा हूं। मुझे वर्तमान में त्रुटि मिल रही है:क्रोम पैक किए गए ऐप में स्क्रिप्ट-src कैसे सेट करें?

Refused to execute inline event handler because it violates the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

मैं अपने manifest.json में नीति को स्पष्ट रूप से कैसे सेट करूं? मैंने चीजों की कोशिश की है:

"content_security_policy": "default-src 'inline'; script-src 'inline'" 

लेकिन मुझे अभी भी एक ही त्रुटि संदेश मिलता है। क्या मेरा वाक्यविन्यास गलत है, या क्या लाल हेरिंग त्रुटि है?

उत्तर

14

आप पैक किए गए ऐप में डिफ़ॉल्ट सीएसपी को ढीला नहीं कर सकते हैं। यदि आप <button id="foo" onclick="doSomething()"> जैसे कुछ कर रहे हैं तो आपको HTML में एक अलग जेएस फ़ाइल शामिल करनी चाहिए जहां आप अपने ऑनलोड हैंडलर में document.querySelector("#foo").onclick = doSomething; करते हैं। यह सीएसपी का पालन करेगा और आपके ऐप को एक्सएसएस हमलों के लिए अधिक प्रतिरोधी बना देगा।

+2

मुझे लगता है कि से डरता था। काश वे सिर्फ इतना कहेंगे कि यह लागू करने के बजाय मैं स्पष्ट रूप से एक अलग विकल्प निर्धारित कर सकता था। –

+1

एक उचित बिंदु। मुझे लगता है कि क्या हो रहा है कि * डिफ़ॉल्ट * सीएसपी के लिए चेतावनी ट्रिगर की जा रही है, ताकि हम (क्रोमियम डेवलपर्स) को स्रोत कोड में अपडेट करने की आवश्यकता हो। आपके परिप्रेक्ष्य से, डेवलपर के रूप में, चेतावनी एक खुजली है जिसे आप खरोंच नहीं कर सकते हैं। मैं एक बार नजर डालूँगा। – sowbug

+0

धन्यवाद। मुझे यह भी लगता है कि अगर मैं स्पष्ट रूप से सुरक्षा नीति स्थापित करने का प्रयास करता हूं तो भी संदेश प्राप्त होता है। –

1

मैं एक ही समस्या का सामना करना पड़ा है, और मैं मैं निम्नलिखित पाया, जबकि this document पढ़ने:

"sandbox": { 
    "pages": ["sandboxed.html"] 
} 
संबंधित मुद्दे