Google Charts unsafe-eval

ant*_*rea 7 javascript jquery google-visualization google-chartwrapper

script-src: 'unsafe-eval'出于安全考虑,我已从CSP标头中删除了.我注意到这已经破坏了Google Charts.图表现在无法呈现并显示错误:

Invalid JSON string: {}
Run Code Online (Sandbox Code Playgroud)

任何想法或谷歌只是吹嘘它并允许他们的图书馆不安全eval?我的地图遇到了同样的问题,不得不使用不同的库.

dav*_*rad 8

Google Visualization确实在eval()内部使用

目前Google Visualization API正在使用:
1.eval on corechart.I.js(3次)
2.eval on jsapi

这里开始,关于GV和Chrome App Manifest v2兼容性的错误报告,大约1个月大.Google Visualization本身不符合Manifest V2的规则:

您的代码或库是使用eval(),new Function(),innerHTML,setTimeout()还是以其他方式传递动态评估的JS代码字符串?

  1. 如果要将JSON代码解析为对象,请使用JSON.parse().
  2. 使用CSP友好的库,例如AngularJS.
  3. 在清单中创建沙箱条目并在沙箱中运行受影响的代码,使用postMessage()与沙盒页面进行通信.

所以谷歌自己非常清楚这个问题.

我的印象是GV内部使用eval(jsonString)而不是JSON.parse()由于浏览器兼容性.JSON.parse()在IE8之前,之前的FF 3.1等等(参见兼容性列表)之前不可用,这就是为什么在阻止eval()时出现无效的JSON错误的原因.

由于这也影响了GV如何遵守Manifest规则,我猜这个问题很快就会消失.

  • "由于这也会影响GV如何遵守Manifest规则,我猜这个问题很快就会消失".18个月后,这仍然没有固定. (3认同)