Content Security Policy (CSP) היא פלטפורמת אינטרנט שנתמכת באופן נרחב תקן אבטחה שנועד למנוע סוגים מסוימים של מתקפות מבוססות הזרקה באמצעות הענקת שליטה במשאבים שנטענו על ידי האפליקציות שלהם. המדריך הזה יעזור לכם להבין איך לפרוס את Google Tag Manager באתרים משתמשים ב-CSP.
צריך להפעיל את תג המאגר כדי להשתמש ב-CSP
כדי להשתמש ב-Google Tag Manager בדף עם CSP, ה-CSP צריך לאפשר את
הפעלת קוד מאגר התגים של Tag Manager. את הקוד הזה יש בתוך שורה
קוד JavaScript שחדיר את הסקריפט gtm.js
. אפשר לעשות זאת בכמה דרכים
למשל, שימוש חד-פעמי (nonce) או בגיבוב (hash). השיטה המומלצת היא להשתמש
nonce, שצריך להיות ערך אקראי שאי אפשר לנחש שהשרת מייצר
בנפרד לכל תשובה. להזין את ערך צופן חד-פעמי (nonce) בשדה Content-Security-
הוראה script-src
של מדיניות:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com
לאחר מכן משתמשים בגרסה הלא מודעת של קוד מאגר התגים המוטבע של Tag Manager. צריך להגדיר את מאפיין ה-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 -->
לאחר מכן מערכת Tag Manager תפיץ את צופן חד-פעמי (nonce) לכל סקריפטים שהוא מוסיף הדף.
יש גישות נוספות להפעלת סקריפט מוטבע, כמו שמספק את הגיבוב (hash) של הסקריפט המוטבע ב-CSP.
אם הגישות המומלצות לצופן חד-פעמי (nonce) או גיבוב (hash) לא אפשריות, אפשר
להפעיל את הסקריפט המוטבע של Tag Manager על ידי הוספת 'unsafe-inline'
לקטע script-src
של ה-CSP.
כדי להשתמש בגישה הזו, יש צורך בהנחיות הבאות ב-CSP:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
connect-src www.googletagmanager.com
משתני JavaScript מותאמים אישית
עקב אופן ההטמעה של משתני JavaScript מותאמים אישית, הם
הערך יהיה undefined
בנוכחות CSP, אלא אם 'unsafe-eval'
מופיעה בקטע script-src
של ה-CSP.
script-src: 'unsafe-eval'
מצב של תצוגה מקדימה
כדי להשתמש במצב תצוגה מקדימה של Google Tag Manager, ה-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 Analytics 4 (Google Analytics) שמשתמשות ב-Google Signals, 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
Universal Analytics (Google Analytics)
כדי להשתמש בתג של Universal 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
כדי להשתמש בתג המרה של 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
כדי להשתמש בתג רימרקטינג של 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
משׂואת רשת (beacon) של נתוני משתמשים ב-Google Ads
כדי להשתמש במשוואות נתוני משתמשים ב-Google Ads כשעובדים בהקשרים מאובטחים, מדיניות CSP חייבת לכלול את ההוראות הבאות:
script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com
חיישן נתוני המשתמשים של Google Ads לא פועל בהקשרים לא מאובטחים, לכן CSP במקרים כאלה אינה רלוונטית.
Floodlight
משתמשי Floodlight יכולים להפעיל CSPs באמצעות ההגדרות הבאות. החלפה
<FLOODLIGHT-CONFIG-ID>
ערכים עם ערך ספציפי
מזהה מפרסם ב-Floodlight, או *
כדי לאשר כל מזהה מפרסם:
לכל המשתמשים:
img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net
עבור 'סקריפטים מותאמים אישית' משׂואות רשת (beacon) ב-Tag Manager:
frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
לגבי תגי תמונה:
img-src: https://ad.doubleclick.net
כדי להשתמש בסטטוס הסכמה:
img-src: https://ade.googlesyndication.com