Hướng dẫn về chính sách bảo mật nội dung

Tài liệu này đưa ra các đề xuất về cách định cấu hình Chính sách bảo mật nội dung (CSP) trên trang web cho Maps JavaScript API. Vì người dùng cuối sử dụng nhiều loại và phiên bản trình duyệt, nên các nhà phát triển nên tham khảo và tinh chỉnh cho đến khi không còn vi phạm CSP nào nữa.

Tìm hiểu thêm về Chính sách bảo mật nội dung.

Chính sách quyền riêng tư nghiêm ngặt

Bạn nên sử dụng CSP nghiêm ngặt thay vì CSP trong danh sách cho phép để giảm thiểu khả năng bị tấn công bảo mật. API JavaScript của Maps hỗ trợ việc sử dụng CSP nghiêm ngặt dựa trên số chỉ dùng một lần. Các trang web phải điền giá trị số chỉ dùng một lần vào cả hai phần tử scriptstyle. Trong nội bộ, Maps JavaScript API sẽ tìm phần tử đầu tiên như vậy và áp dụng giá trị số chỉ dùng một lần cho các phần tử kiểu hoặc tập lệnh được chèn tương ứng bằng tập lệnh API.

Ví dụ:

Ví dụ sau đây cho thấy một CSP mẫu, cùng với một trang HTML mà CSP đó được nhúng:

Ví dụ về chính sách bảo mật nội dung

script-src 'nonce-{script value}' 'strict-dynamic' https: 'unsafe-eval' blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com data: blob:;
font-src https://fonts.gstatic.com;
style-src 'nonce-{style value}' https://fonts.googleapis.com;
worker-src blob:;

Trang HTML mẫu

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css" nonce="{style value}">
    <style nonce="{style value}">...</style>
    ...
  </head>
  <body>
    <div id="map"></div>
    <script src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap" async nonce="{script value}"></script>
    <script nonce="{script value}"> function initMap() { ... } </script>
  </body>
</html>

Chính sách quyền riêng tư (CSP) trong danh sách cho phép

Nếu bạn đã thiết lập CSP trong danh sách cho phép, vui lòng tham khảo danh sách Miền Google Maps. Bạn nên tham khảo tài liệu này và ghi chú phát hành của API Maps JavaScript để luôn nắm bắt thông tin mới nhất và đưa mọi miền dịch vụ mới vào danh sách cho phép nếu cần.

Những trang web tải API JavaScript của Maps từ một miền API cũ của Google (ví dụ: maps.google.com) hoặc một miền theo khu vực cụ thể (ví dụ: maps.google.fr) cũng phải đưa các tên miền này vào chế độ cài đặt CSP script-src của mình, như trong ví dụ sau:

script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googleapis.com https://*.gstatic.com *.google.com https://*.ggpht.com *.googleusercontent.com blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com  *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com  data: blob:;
font-src https://fonts.gstatic.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
worker-src blob:;