6

मैंने सुरक्षा उद्देश्यों के लिए अपने सीएसपी शीर्षकों से script-src: 'unsafe-eval' हटा दिया है। मैंने देखा है कि अब यह Google चार्ट तोड़ दिया है। चार्ट अब रेंडर करने में विफल रहता है और त्रुटि प्रदर्शित करता है:Google चार्ट असुरक्षित-eval

Invalid JSON string: {} 

कोई भी विचार या गूगल बस इसे उड़ाने और उनके पुस्तकालयों में असुरक्षित-eval दे रहा है? मुझे उनके मानचित्र के साथ एक ही समस्या थी और मुझे एक अलग पुस्तकालय के साथ जाना पड़ा।

उत्तर

7

गूगल विज़ुअलाइज़ेशन वास्तव में eval() आंतरिक

Currently Google Visualization API is using:
1. eval on corechart.I.js (3 times)
2. eval on jsapi

here से, जीवी और Chrome एप्लिकेशन प्रकट वी 2 संगतता, के बारे में 1 महीने पुराने के बारे में एक बग रिपोर्ट ले ली उपयोग कर रहे हैं। गूगल विज़ुअलाइज़ेशन नहीं ही Manifest V2 के नियमों का अनुपालन करता है:

Is your code or library using eval(), new Function(), innerHTML, setTimeout(), or otherwise passing strings of JS code that are dynamically evaluated?

  1. Use JSON.parse() if you’re parsing JSON code into an object.
  2. Use a CSP-friendly library, for example, AngularJS.
  3. Create a sandbox entry in your manifest and run the affected code in the sandbox, using postMessage() to communicate with the sandboxed page.

तो खुद को गूगल काफी समस्या से अवगत हैं।

मेरी धारणा यह है कि ब्राउज़र अनुकूलता के कारण JSON.parse() के बजाय आंतरिक रूप से eval(jsonString) का उपयोग कर रहा है। JSON.parse() पहले आईई 8, पहले एफएफ 3.1 और इतने पर उपलब्ध नहीं था (compatibility list देखें), इसलिए जब आप eval() को अवरोधित करते हैं तो आपको अमान्य JSON त्रुटि क्यों मिलती है।

चूंकि यह भी प्रभावित करता है कि जीवी मैनिफेस्ट नियमों का पालन कैसे करता है, मुझे लगता है कि यह मुद्दा बहुत जल्द गायब हो जाएगा।

+2

"चूंकि यह भी प्रभावित करता है कि जीवी मैनिफेस्ट नियमों का पालन कैसे करता है, मुझे लगता है कि यह मुद्दा बहुत जल्द गायब हो जाएगा"। 18 महीने बाद, यह अभी भी तय नहीं है। – Flavien

+0

@ फ़्लावियन, मुझे दोष न दें, Google को दोष दें – davidkonrad

+0

चिंता न करें, मैं आपको दोष नहीं दे रहा हूं :) – Flavien

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