Chính sách bảo mật nội dung (CSP) là một phương tiện bảo mật trang web của bạn bằng cách giới hạn những tài nguyên và tập lệnh được phép tải và thực thi. Bạn có thể bật CSP bằng cách đặt tiêu đề Content-Security-Policy
trong phản hồi HTTP từ máy chủ web.
Có hai cách tiêu chuẩn để định cấu hình CSP:
Chỉ định danh sách cho phép các miền có thể chèn tài nguyên của chúng trên trang.
Chỉ định một số chỉ dùng một lần ngẫu nhiên, trong đó các tài nguyên trên trang phải được đánh dấu để tải. Phương pháp này được gọi là CSP nghiêm ngặt.
Vì các miền mà Thẻ nhà xuất bản của Google (GPT) sử dụng thay đổi theo thời gian, nên chúng tôi chỉ hỗ trợ CSP nghiêm ngặt (tuỳ chọn 2). Phương pháp này giúp bạn không cần phải duy trì danh sách các miền có thể đã lỗi thời và làm hỏng trang web của mình.
Thiết lập CSP bằng GPT
Bật CSP trên máy chủ web.
Làm theo các bước được nêu trong phần sử dụng CSP nghiêm ngặt để thiết lập tiêu đề CSP và áp dụng số chỉ dùng một lần cho mọi thẻ tập lệnh trên trang, bao gồm cả
gpt.js
. GPT hỗ trợ cụ thể các lệnh sau đây của CSP:Content-Security-Policy: object-src 'none'; script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:; base-uri 'none'; report-uri https://your-report-collector.example.com/
Bạn có thể chọn một chính sách nới lỏng hơn nếu chính sách đó phù hợp với trường hợp sử dụng của bạn. Các chính sách hạn chế hơn có thể bị phá vỡ mà không cần thông báo.
Bật tính năng hiển thị trên nhiều miền.
Iframe quảng cáo có thể tải các tài nguyên bên ngoài mà có thể không được CSP cho phép. Vì các iframe cùng miền kế thừa CSP của cửa sổ cấp cao nhất và GPT không thể kiểm soát nội dung của mẫu quảng cáo, nên mẫu quảng cáo cùng miền thường sẽ không hoạt động đúng cách với tiêu đề CSP.
Để bật tính năng kết xuất trên nhiều miền cho tất cả mẫu quảng cáo, hãy thực thi
googletag.pubads().setForceSafeFrame(true)
trước khi tải bất kỳ vị trí quảng cáo nào.<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Hello GPT</title>
<script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></script>
<script nonce="KC7tcz53FHqumKP1">
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.pubads().setForceSafeFrame(true);
});
</script>
</head>
Thử nghiệm
Trước tiên, bạn nên kiểm thử các chính sách của mình bằng cách đặt tiêu đề Content-Security-Policy-Report-Only
thay vì Content-Security-Policy
. Tiêu đề báo cáo các lỗi vi phạm nhưng vẫn cho phép các lỗi đó xuất hiện trên trang.