搭配內容安全政策使用代碼管理工具

內容安全政策 (CSP) 是廣受支援的網路 此安全標準旨在預防特定類型的插入式攻擊 讓開發人員掌控應用程式載入的資源。 本指南將說明如何在以下網站網站上部署 Google 代碼管理工具: 請使用 CSP

啟用容器標記以使用 CSP

如要在含有 CSP 的網頁上使用 Google 代碼管理工具,CSP 必須允許 代碼管理工具容器程式碼的執行程序這段程式碼是以內嵌方式建構 插入 gtm.js 指令碼的 JavaScript 程式碼。有幾種方法 例如使用 Nonce 或雜湊建議方法是使用 nonce,應該是伺服器產生不可不知的隨機值 並個別定義回應在 Content-Security 中提供 Nonce 值: 政策 script-src 指令:

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

接著,使用內嵌代碼管理工具容器程式碼的 Nonce 版本。 將內嵌指令碼元素上的 Nonce 屬性設為相同的值:

<!-- 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 -->

然後將 Nonce 套用至該工具加入的所有指令碼。 該網頁。

目前有其他執行內嵌指令碼的方法,例如: ,以在 CSP 中提供內嵌指令碼的雜湊值

如果建議的 Nonce 或雜湊方法不可行 加入 'unsafe-inline' 以啟用代碼管理工具內嵌指令碼 指令加入 CSP 的 script-src 區段。

CSP 需要下列指令才能使用這個方法:

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

自訂 JavaScript 變數

由於自訂 JavaScript 變數的導入方式影響, 在有 CSP 的情況下,評估為 undefined (除非'unsafe-eval' 指令是在 CSP 的 script-src 區段中提供。

script-src: 'unsafe-eval'

預覽模式

如要使用 Google 代碼管理工具的預覽模式,CSP 必須包含 指令:

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)

如要使用 Google Analytics 4 (Google Analytics) 代碼,CSP 必須包含 指令:

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

使用 Google 信號部署 Google Analytics 4 (Google Analytics) 時, CSP 必須包含下列指令:

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

通用 Analytics

如要使用通用 Analytics (Google Analytics) 代碼,CSP 必須包含 指令:

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

如要使用 Google Ads 轉換代碼,CSP 必須包含下列項目 指令:

安全連線:

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

不安全的連線:

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

如要使用 Google Ads 再行銷代碼,CSP 必須包含下列項目: 指令

安全連線:

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

不安全的連線:

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

為了在安全環境中使用 Google Ads 使用者資料信標,CSP 必須包含下列指令:

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

Google Ads 使用者資料信標在不安全的環境中運作,因此 CSP 則不適用這些情況

泛光燈

Floodlight 使用者可以使用下列設定啟用 CSP。將 <FLOODLIGHT-CONFIG-ID> 值,其中包含 Floodlight 廣告主 ID,或使用 * 允許任何廣告主 ID:

適用於所有使用者:

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

適用於「自訂指令碼」代碼管理工具中的信標:

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

圖片代碼:

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

同意聲明模式

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