2016-08-10 8 views
7

के लिए सामग्री सुरक्षा असुरक्षित-eval नीति केवल एक स्रोत के लिए 'असुरक्षित-eval' निर्देश जोड़ने के लिए कैसे संभव है?केवल एक यूआरएल

मैं एक कॉर्डोवा एप्लिकेशन विकसित कर रहा हूं और मुझे एकाधिक स्रोत (बाहरी स्क्रिप्ट जैसे ट्विटर, आदि ..) से स्क्रिप्ट-src को अनुमति देने की आवश्यकता है। मैंने मेटा http-equiv = "सामग्री-सुरक्षा-नीति में सेट किया है: स्क्रिप्ट src *

<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' data: gap: * 'unsafe-eval'; style-src 'self' 'unsafe-inline'; script-src * 'self' 'unsafe-inline' 'unsafe-eval';">

यह काम करता है लेकिन यह खतरनाक है क्योंकि यह खुली है।

तो मैं 'असुरक्षित-eval' केवल च जोड़ना चाहते हैं या जिस स्क्रिप्ट को इसकी आवश्यकता है (https://maps.googleapis.com मेरे उदाहरण में)

क्या यह संभव है?

उत्तर

1

आप नहीं कर सकते।

'unsafe-eval' किसी नीति में किसी विशेष स्क्रिप्ट स्रोत पर लागू किसी प्रकार का ध्वज या विशेषता नहीं है। इसके बजाय, यह में और स्वयं का एक स्क्रिप्ट स्रोत है, जैसा कि आप सीएसपी कल्पना से इस अंश में देख सकते हैं:

source-expression = scheme-source/host-source/keyword-source/nonce-source/hash-source 
scheme-source  = scheme-part ":" 
host-source  = [ scheme-part "://" ] host-part [ port-part ] [ path-part ] 
keyword-source = "'self'"/"'unsafe-inline'"/"'unsafe-eval'" 

इसके अलावा, यहां तक ​​कि आप कर सकते हैं तो यह ट्रिगर कुछ अन्य स्क्रिप्ट से बचाने नहीं होता मूल्यांकन करने के लिए अपनी स्ट्रिंग के साथ मानचित्र एपीआई कोड के भीतर असुरक्षित eval।

CSP unsafe-eval using Google Maps API पर एक नज़र डालें, हालांकि आप 'unsafe-eval' से पूरी तरह से छुटकारा पा सकते हैं।

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