6

Tôi đã xóa script-src: 'unsafe-eval' khỏi tiêu đề CSP của mình vì mục đích bảo mật. Tôi đã nhận thấy điều này bây giờ đã phá vỡ Google Charts. Biểu đồ hiện không hiển thị và hiển thị lỗi:Biểu đồ Google không an toàn-eval

Invalid JSON string: {} 

Bất kỳ ý tưởng nào hoặc Google chỉ thổi và cho phép không an toàn trong thư viện của họ? Tôi đã có cùng một vấn đề với Bản đồ của họ và phải đi với một thư viện khác.

Trả lời

7

Google Visualization đang thực sự sử dụng eval() nội

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

Taken từ here, một báo cáo lỗi về GV và Chrome App Manifest v2 tương thích, khoảng 1 tháng tuổi. Google Visualization không tuân thủ các quy tắc của 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.

Vì vậy, bản thân google nhận thức được khá nhiều vấn đề.

Hiển thị của tôi là GV nội bộ đang sử dụng eval(jsonString) thay vì JSON.parse() do khả năng tương thích của trình duyệt. JSON.parse() không có sẵn trước IE8, trước FF 3.1 và như vậy (xem compatibility list), đó là lý do tại sao bạn nhận được lỗi JSON không hợp lệ khi bạn chặn eval().

Vì điều này cũng ảnh hưởng đến cách GV tuân thủ các quy tắc kê khai, tôi đoán vấn đề sẽ biến mất rất, rất sớm.

+2

"Vì điều này cũng ảnh hưởng đến cách GV tuân thủ các quy tắc kê khai, tôi đoán vấn đề sẽ biến mất rất, rất sớm". 18 tháng sau, điều này vẫn không được khắc phục. – Flavien

+0

@Flavien ,, đừng đổ lỗi cho tôi, đổ lỗi cho Google – davidkonrad

+0

Đừng lo lắng, tôi không đổ lỗi cho bạn :) – Flavien

Các vấn đề liên quan