Tích hợp với Chính sách bảo mật nội dung

Chính sách bảo mật nội dung (CSP) là một phương thức bảo mật trang web của bạn bằng cách hạn chế 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 thiết lập tiêu đề Content-Security-Policy trong các phản hồi HTTP từ máy chủ web.

Có hai cách tiêu chuẩn để định cấu hình CSP:

  1. Chọn một danh sách cho phép gồm các miền có thể chèn tài nguyên trên trang.

  2. Chỉ định một số chỉ dùng một lần ngẫu nhiên, trong đó 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 (tùy chọn 2). Phương pháp này giúp bạn không cần duy trì danh sách luân phiên các miền có thể trở nên lỗi thời và làm hỏng trang web của bạn.

Thiết lập CSP với GPT

  1. Bật CSP trên máy chủ web của bạn.

    Làm theo các bước trong cách 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 của bạn, bao gồm cả gpt.js. GPT hỗ trợ cụ thể cho các lệnh CSP sau:

    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 dễ dàng hơn nếu phù hợp với trường hợp sử dụng của bạn. Những chính sách hạn chế hơn có thể vi phạm mà không cần thông báo.

  2. Bật 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à CSP không cho phép. Vì các iframe miền giống nhau 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 các 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 hiển thị nhiều miền cho tất cả cá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ùng quảng cáo nào.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

Kiểm thử

Bạn nên kiểm tra các chính sách của mình trước 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 vi phạm nhưng vẫn cho phép vi phạm trên trang.