Làm cách nào để thư giãn Chính sách bảo mật nội dung trong Chrome?


17

Gần đây, một số trang web như Facebook sử dụng Chính sách bảo mật nội dung (CSP) để hạn chế tải tập lệnh từ "các nguồn không đáng tin cậy". Ví dụ: khi yêu cầu nội dung HTML của Facebook (ví dụ: https://www.facebook.com ), phản hồi HTTP của Facebook bao gồm tiêu đề phản hồi sau:

x-webkit-csp:default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net;style-src * 'unsafe-inline';connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net;

Điều này có tác động đến một số bookmarklets yêu cầu tải và thực thi các thư viện Javascript từ các nguồn không đáng tin cậy.

Ví dụ: bất cứ khi nào tôi cố chạy bookmarklet Show Neoors trên trang Facebook, việc thực thi bookmarklet này sẽ thất bại khi nó cố tải jQuery từ một nguồn không đáng tin cậy. Trong bảng điều khiển Nhà phát triển của Chrome, nó sẽ cho biết:

Refused to load the script 'http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' because it violates the following Content Security Policy directive: "script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net".

Tôi đã tìm thấy trang tài liệu Chrome về chủ đề này, nhưng nó chỉ áp dụng cho các tiện ích mở rộng của Chrome .

Tôi đang tìm giải pháp cho phép tôi

  • hoặc trong một lần hủy kích hoạt CSP
  • hoặc danh sách trắng vĩnh viễn các nguồn đáng tin cậy của tôi.


@Rudie Điều đó có hiệu quả với Chrome Mobile không?
Michael

@Michael Nếu Chrome Mobile hỗ trợ các tiện ích mở rộng hiện đại. WeRequest là loại mới. Tôi không sử dụng Chrome Mobile, vì vậy tôi không biết.
Rudie

Câu trả lời:


2

Phương thức được xác nhận bởi Ứng dụng Chrome

Sử dụng thư viện templating

Sử dụng thư viện cung cấp các mẫu được biên dịch sẵn và bạn đã hoàn tất. Bạn vẫn có thể sử dụng một thư viện không cung cấp dịch vụ biên dịch trước, nhưng nó sẽ yêu cầu một số công việc từ phía bạn và có những hạn chế.

Bạn sẽ cần sử dụng hộp cát để cô lập bất kỳ nội dung nào bạn muốn làm 'eval'. Sandboxing nâng CSP trên nội dung mà bạn chỉ định.

Sandbox nội dung địa phương

Sandboxing cho phép các trang được chỉ định được phục vụ trong một nguồn gốc duy nhất có hộp cát. Các trang này sau đó được miễn trừ khỏi Chính sách bảo mật nội dung của họ. Các trang được hộp cát có thể sử dụng iframe, tập lệnh nội tuyến và eval () (và hai trang cuối cùng là những trang bị ngăn chặn). Điều đó sẽ khắc phục 'không an toàn nội tuyến' và 'không an toàn-eval'.

  • Sử dụng tập lệnh nội tuyến trong hộp cát
  • Bao gồm hộp cát trong bảng kê khai

Truy cập tài nguyên từ xa

Bạn có thể tìm nạp tài nguyên từ xa thông qua XMLHttpRequest và phục vụ chúng thông qua blob:, data:, hoặc filesystem: URL. Điều này sẽ khắc phục vấn đề tìm nạp jQuery.

Yêu cầu rõ ràng nhất

Để có thể tạo nguồn gốc chéo XMLHttpRequests, bạn sẽ cần thêm quyền cho máy chủ của URL từ xa.

Nguồn gốc chéo XMLHttpRequest

Tìm nạp URL từ xa vào ứng dụng và phân phát nội dung của nó dưới dạng blob:URL.


Tôi không nghĩ bạn có thể làm bất cứ điều gì trong số này. Để sửa các tiêu đề unsafe-evalunsafe-inlinephản hồi, chỉ chủ sở hữu tập lệnh mới có thể sửa mã hoặc nếu nó thuộc phạm vi công cộng, bạn có thể sửa nó. Tất cả điều này có lẽ là một sửa chữa một lần.


Hacks

Không an toànWindow

http://wiki.greasespot.net/UnsafeWindow

Nội dung kịch bản tiêm

http://wiki.greasespot.net/Content_Script_Injection


Tuy nhiên, các vụ hack có nhược điểm vì chúng được biết là gây ra lỗ hổng bảo mật ít nhất là lần đầu tiên, chắc chắn.


0

Bạn có thể chỉnh sửa các cài đặt này trong tab nội dung mà bạn có thể truy cập trực tiếp bằng cách nhập chrome://settings/contentvào thanh địa chỉ. Bạn có thể liệt kê các tên miền cụ thể vào các loại nội dung cụ thể.


8
Trường hợp chính xác trong cài đặt nội dung tôi làm điều này, và làm thế nào? Tôi đã thử thêm trang web của mình vào "ngoại lệ cookie và dữ liệu trang web" để không có hiệu lực. Không có cài đặt nào khác có vẻ phù hợp.
Michael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.