Sử dụng Trình quản lý thẻ theo 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 trang web được hỗ trợ rộng rãi tiêu chuẩn bảo mật dùng để ngăn chặn một số loại tấn công chèn bằng cách cho phép nhà phát triển kiểm soát các tài nguyên mà ứng dụng của họ tải. Hãy xem hướng dẫn này để biết cách triển khai Trình quản lý thẻ của Google trên các trang web sử dụng CSP.

Bật thẻ vùng chứa để sử dụng CSP

Để sử dụng Trình quản lý thẻ của Google trên một trang có CSP, CSP đó phải cho phép thực thi mã vùng chứa của Trình quản lý thẻ. Mã này được tạo dưới dạng cùng dòng Mã JavaScript chèn tập lệnh gtm.js. Có một vài cách để thực hiện điều này, chẳng hạn như sử dụng số chỉ dùng một lần hoặc hàm băm. Bạn nên sử dụng nonce, phải là một giá trị ngẫu nhiên, không thể đoán được do máy chủ tạo ra cho từng câu trả lời. Cung cấp giá trị số chỉ dùng một lần trong lớp Bảo mật nội dung Lệnh script-src của chính sách:

Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com

Sau đó, hãy sử dụng phiên bản nhận biết được số chỉ dùng một lần của mã vùng chứa Trình quản lý thẻ nội tuyến. Đặt thuộc tính số chỉ dùng một lần trên phần tử tập lệnh cùng dòng thành cùng giá trị này:

<!-- Google Tag Manager -->
<script nonce='{SERVER-GENERATED-NONCE}'>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

Sau đó, Trình quản lý thẻ sẽ truyền số chỉ dùng một lần vào bất kỳ tập lệnh nào mà công cụ này thêm vào trang.

Có nhiều phương pháp khác để cho phép thực thi tập lệnh cùng dòng, chẳng hạn như khi cung cấp hàm băm của tập lệnh cùng dòng trong CSP.

Nếu không thể áp dụng phương pháp băm số chỉ dùng một lần hoặc số chỉ dùng một lần được đề xuất, bạn có thể bật tập lệnh cùng dòng Trình quản lý thẻ bằng cách thêm 'unsafe-inline' chỉ dẫn cho phần script-src của CSP.

CSP cần có các lệnh sau đây để áp dụng phương pháp này:

script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
connect-src www.googletagmanager.com

Biến JavaScript tùy chỉnh

Do cách triển khai các biến JavaScript tuỳ chỉnh, nên sẽ đánh giá undefined khi có CSP, trừ phi 'unsafe-eval' được đưa ra trong phần script-src của CSP.

script-src: 'unsafe-eval'

Chế độ xem trước

Để sử dụng Chế độ xem trước của Trình quản lý thẻ của Google, CSP phải bao gồm các lệnh sau:

script-src: https://googletagmanager.com https://tagmanager.google.com
style-src: https://googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src: https://googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src: https://fonts.gstatic.com data:

Google Analytics 4 (Google Analytics)

Để sử dụng thẻ Google Analytics 4 (Google Analytics), CSP phải bao gồm các lệnh sau:

script-src:  https://*.googletagmanager.com
img-src:     https://*.google-analytics.com https://*.googletagmanager.com
connect-src: https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com

Đối với việc triển khai Google Analytics 4 (Google Analytics) bằng tín hiệu của Google, CSP phải bao gồm các lệnh sau đây:

script-src:  https://*.googletagmanager.com
img-src:     https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
             https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src: https://*.google-analytics.com https://*.analytics.google.com
             https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
frame-src:   https://td.doubleclick.net

Universal Analytics (Google Analytics)

Để sử dụng thẻ Universal Analytics (Google Analytics), CSP phải bao gồm các lệnh sau:

script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com

Để sử dụng thẻ chuyển đổi Google Ads, CSP phải bao gồm những thông tin sau lệnh:

Đối với kết nối bảo mật:

script-src: https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com
frame-src: https://www.googletagmanager.com https://td.doubleclick.net

Đối với các kết nối không an toàn:

script-src: www.googleadservices.com www.google.com www.googletagmanager.com
img-src: googleads.g.doubleclick.net www.google.com google.com

Để sử dụng thẻ tái tiếp thị của Google Ads, CSP phải bao gồm những thông tin sau .

Đối với kết nối bảo mật:

script-src: https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com
img-src: https://www.google.com https://google.com
frame-src: https://bid.g.doubleclick.net https://td.doubleclick.net

Đối với các kết nối không an toàn:

script-src: www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src: www.google.com google.com
frame-src: bid.g.doubleclick.net td.doubleclick.net

Để sử dụng beacon dữ liệu người dùng Google Ads khi chạy trong bối cảnh bảo mật, CSP phải bao gồm các lệnh sau:

script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com

beacon dữ liệu người dùng Google Ads không chạy trong ngữ cảnh không an toàn, do đó CSP trong các trường hợp đó không thể áp dụng.

Floodlight

Người dùng Floodlight có thể bật CSP bằng cách sử dụng các cấu hình sau. Thay thế <FLOODLIGHT-CONFIG-ID> giá trị có một thuộc tính cụ thể Mã nhận dạng nhà quảng cáo Floodlight hoặc * để cho phép mọi mã nhận dạng nhà quảng cáo:

Dành cho tất cả người dùng:

img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net

Đối với "tập lệnh tuỳ chỉnh" beacon trong Trình quản lý thẻ:

frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

Đối với thẻ hình ảnh:

img-src: https://ad.doubleclick.net

Đối với chế độ đồng ý:

img-src: https://ade.googlesyndication.com