Content Security Policy (CSP) הוא תקן אבטחת אינטרנט עם תמיכה רחבה, שמטרתו למנוע סוגים מסוימים של מתקפות באמצעות הזרקות על ידי מתן שליטה במשאבים שהאפליקציות שלהם טוענים. המדריך הזה מסביר איך להטמיע את Google Tag Manager באתרים שמשתמשים ב-CSP.
כדי להשתמש ב-CSP, צריך להפעיל את תג כלי הקיבול
כדי להשתמש ב-Google Tag Manager בדף עם CSP, ה-CSP צריך לאפשר
להפעלת קוד מאגר התגים של Tag Manager. הקוד הזה נוצר כקוד JavaScript מוטבע שמחדיר את הסקריפט gtm.js
. אפשר לעשות את זה בכמה דרכים, כמו שימוש בצופן חד-פעמי (nonce) או בגיבוב (hash). השיטה המומלצת היא להשתמש ב-nonce, שהוא ערך אקראי ואי אפשר לנחש שהשרת יוצר בנפרד לכל תגובה. מספקים את הערך צופן חד-פעמי (nonce) בהוראה script-src
של Content-Security-Policy:
Content-Security-Policy: script-src 'nonce-{SERVER-GENERATED-NONCE}'; img-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.
אם אי אפשר ליישם את הגישות המומלצות לביצוע גיבוב או חד-פעמי, אפשר להפעיל את הסקריפט המוטבע של Tag Manager על ידי הוספת ההנחיה 'unsafe-inline'
לקטע script-src
של ה-CSP.
כדי להשתמש בגישה הזו, נדרשות ההוראות הבאות ב-CSP:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-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>
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
בחיבורים לא מאובטחים:
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
חיישן נתוני משתמש ב-Google Ads
כדי להשתמש במשׂואת רשת (beacons) של נתוני משתמשים ב-Google Ads כשהיא פועלת בהקשרים מאובטחים, ה-CSP חייב לכלול את ההוראות הבאות:
script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com
איתות נתוני המשתמש ב-Google Ads לא פועלת בהקשרים לא מאובטחים, ולכן הגדרת ה-CSP במקרים האלה לא רלוונטית.
Floodlight
משתמשי Floodlight יכולים להפעיל מודעות CSP באמצעות ההגדרות הבאות. מחליפים את ערכי <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