6

Ho rimosso script-src: 'unsafe-eval' dalle intestazioni CSP per motivi di sicurezza. Ho notato che questo ora ha rotto Google Charts. Il grafico ora non riesce a rendere e visualizza l'errore:Google Charts unsafe-eval

Invalid JSON string: {} 

Tutte le idee o è Google ha appena soffia e permettendo insicuro-eval nelle loro biblioteche? Ho avuto lo stesso problema con le loro mappe e ho dovuto utilizzare una libreria diversa.

risposta

7

Google visualizzazione sono infatti utilizza eval() internamente

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

tratto da here, una segnalazione di bug per quanto riguarda GV e la compatibilità v2 Chrome App manifesto, circa 1 mese di età. Google Visualization per sé non è conforme alle regole di 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.

Così se stessi di Google sono più o meno consapevoli del problema.

La mia impressione è che GV utilizzi internamente eval(jsonString) anziché JSON.parse() a causa della compatibilità del browser. JSON.parse() non era disponibile prima di IE8, precedente FF 3.1 e così via (vedere compatibility list), ecco perché si ottiene l'errore JSON non valido quando si blocca eval().

Poiché ciò influisce anche sul modo in cui GV è conforme alle regole Manifest, credo che il problema scomparirà molto presto.

+2

"Poiché ciò influisce anche sul modo in cui GV è conforme alle regole Manifest, immagino che il problema scompaia molto, molto presto". 18 mesi dopo, questo non è ancora stato risolto. – Flavien

+0

@Flavien ,, non incolpare me, incolpare Google – davidkonrad

+0

Non preoccuparti, non ti sto incolpando :) – Flavien

Problemi correlati