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) của trang web cho API Maps JavaScript. 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 nhà phát triển nên sử dụng ví dụ này làm tài liệu tham khảo, điều chỉnh cho đến khi không còn lỗi 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.
CSP nghiêm ngặt
Bạn nên sử dụng CSP nghiêm ngặt thay vì CSP danh sách cho phép để giảm 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ả phần tử script
và style
.
Trong nội bộ, API JavaScript của Maps 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 phần tử kiểu hoặc tập lệnh do tập lệnh API chèn tương ứng.
Ví dụ:
Ví dụ sau đây cho thấy một CSP mẫu, cùng với một trang HTML nơi CSP được nhúng:
Mẫu 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>
Danh sách cho phép CSP
Nếu bạn đã thiết lập CSP 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 JavaScript Maps để nắm bắt thông tin mới nhất, đồng thời thêm mọi miền dịch vụ mới vào danh sách cho phép nếu cần.
Các trang web tải API JavaScript của Maps từ một miền API Google cũ (ví dụ: maps.google.com
) hoặc một miền dành riêng cho khu vực (ví dụ: maps.google.fr
) cũng phải đưa các tên miền này vào chế độ cài đặt script-src
CSP, 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:;