خط مشی امنیت محتوا (CSP) یک استاندارد امنیتی وب است که به طور گسترده پشتیبانی می شود که برای جلوگیری از انواع خاصی از حملات مبتنی بر تزریق با دادن کنترل به توسعه دهندگان بر منابع بارگذاری شده توسط برنامه هایشان طراحی شده است. از این راهنما برای درک نحوه استقرار Google Tag Manager در سایت هایی که از CSP استفاده می کنند استفاده کنید.
برای استفاده از CSP تگ Container را فعال کنید
برای استفاده از Google Tag Manager در صفحه ای با CSP، CSP باید اجازه اجرای کد ظرف Tag Manager شما را بدهد. این کد به عنوان کد جاوا اسکریپت درون خطی ساخته شده است که اسکریپت gtm.js
را تزریق می کند. راه های مختلفی برای این کار وجود دارد، مانند استفاده از nonce یا هش. روش توصیه شده استفاده از یک nonce است که باید یک مقدار تصادفی غیرقابل حدس زدن باشد که سرور به صورت جداگانه برای هر پاسخ تولید می کند. مقدار nonce را در دستورالعمل Content-Security- Policy 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 -->
سپس مدیر تگ، nonce را به هر اسکریپتی که به صفحه اضافه می کند، منتشر می کند.
روش های دیگری برای فعال کردن اجرای یک اسکریپت درون خطی وجود دارد، مانند تهیه هش اسکریپت درون خطی در CSP.
اگر رویکردهای nonce یا هش توصیه شده امکان پذیر نباشد، می توان اسکریپت درون خطی 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
متغیرهای جاوا اسکریپت سفارشی
با توجه به نحوه پیاده سازی متغیرهای جاوا اسکریپت سفارشی ، آنها در حضور یک CSP به undefined
ارزیابی می شوند، مگر اینکه دستورالعمل '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
بازاریابی مجدد گوگل ادز
برای استفاده از تگ بازاریابی مجدد گوگل ادز، 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 User Data Beacon
برای استفاده از چراغهای اطلاعات کاربر Google Ads هنگام اجرا در زمینههای امن، CSP باید شامل دستورالعملهای زیر باشد:
script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com
چراغ اطلاعات کاربر تبلیغات Google در زمینههای ناامن اجرا نمیشود، بنابراین پیکربندی CSP در این موارد قابل اجرا نیست.
نورافکن
کاربران 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