מדיניות אבטחת תוכן (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;
connect-src www.googletagmanager.com
לאחר מכן, משתמשים בגרסה עם תמיכה ב-nonce של קוד מאגר התגים של 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 יפיץ את המזהה החד-פעמי לכל הסקריפטים שהוא מוסיף לדף.
יש עוד גישות להפעלת סקריפט מוטבע, כמו הוספת גיבוב של הסקריפט המוטבע ב-CSP.
אם לא ניתן להשתמש בשיטות המומלצות ליצירת קוד חד-פעמי או ליצירת גיבוב, אפשר להפעיל את הסקריפט בשורה של 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
המרות ב-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 https://pagead2.googlesyndication.com
frame-src https://www.googletagmanager.com https://td.doubleclick.net
connect-src https://pagead2.googlesyndication.com
לחיבורים לא מאובטחים:
script-src www.googleadservices.com www.google.com www.googletagmanager.com
img-src googleads.g.doubleclick.net www.google.com google.com pagead2.googlesyndication.com
connect-src pagead2.googlesyndication.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://td.doubleclick.net
לחיבורים לא מאובטחים:
script-src www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src www.google.com google.com
frame-src td.doubleclick.net
נתוני משתמש ב-Google Ads – איתות
כדי להשתמש בסמנים של נתוני המשתמשים ב-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
עבור איתותי אות 'סקריפטים מותאמים אישית' ב-Tag Manager:
frame-src https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
בתגי תמונה:
img-src https://ad.doubleclick.net
כדי להשתמש בסטטוס הסכמה:
img-src https://ade.googlesyndication.com