Tài liệu này cung cấp 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 JavaScript. Vì người dùng cuối sử dụng nhiều loại trình duyệt và phiên bản, nên nhà phát triển nên sử dụng ví dụ này làm tệp đối chiếu, tinh chỉnh cho đến khi không còn lỗi vi phạm CSP nào.
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 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 cả giá trị số chỉ dùng một lần vào cả hai phần tử script
và style
.
Trong nội bộ, API JavaScript của Maps sẽ tìm phần tử đầu tiên 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 được chèn bằng tập lệnh API tương ứng.
Ví dụ:
Sau đây là ví dụ về một CSP mẫu (cùng với một trang HTML 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>
CSP của danh sách cho phép
Nếu bạn đã thiết lập CSP danh sách cho phép, vui lòng tham khảo danh sách các miền Google Maps. Bạn nên tham khảo tài liệu này và các ghi chú phát hành của API Maps JavaScript để luôn cập nhật và đưa 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 theo khu vực (ví dụ: maps.google.fr
), cũng phải bao gồm các tên miền này trong chế độ cài đặt CSP script-src
, 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:;