سیاست امنیتی محتوا (CSP) یک استاندارد امنیتی وب است که به طور گسترده پشتیبانی میشود و هدف آن جلوگیری از انواع خاصی از حملات مبتنی بر تزریق است که با دادن کنترل به توسعهدهندگان بر منابع بارگذاری شده توسط برنامههایشان انجام میشود. از این راهنما برای درک نحوه استقرار Google Tag Manager در سایتهایی که از CSP استفاده میکنند، استفاده کنید.
فعال کردن تگ کانتینر برای استفاده از CSP
برای استفاده از Google Tag Manager در صفحهای با CSP، CSP باید اجازه اجرای کد محفظه Tag Manager شما را بدهد. این کد به صورت کد جاوا اسکریپت درونخطی ساخته شده است که اسکریپت gtm.js را تزریق میکند. روشهای مختلفی برای انجام این کار وجود دارد، مانند استفاده از nonce یا hash. روش توصیه شده استفاده از nonce است که باید یک مقدار تصادفی غیرقابل حدس باشد که سرور برای هر پاسخ به صورت جداگانه تولید میکند. مقدار nonce را در دستورالعمل Content-Security-Policy script-src-elem به صورت nonce-{SERVER-GENERATED-NONCE} وارد کنید و از نسخه nonce-aware کد محفظه 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 یا hash امکانپذیر نباشند، میتوان اسکریپت درونخطی Tag Manager را با افزودن دستورالعمل 'unsafe-inline' به بخش script-src-elem در CSP فعال کرد.
موارد زیر باید توسط CSP برای استفاده از این رویکرد مجاز باشند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com 'unsafe-inline' |
img-src | https://www.googletagmanager.com |
connect-src | https://www.googletagmanager.com https://www.google.com |
متغیرهای سفارشی جاوا اسکریپت
با توجه به نحوه پیادهسازی متغیرهای سفارشی جاوا اسکریپت ، در صورت وجود CSP، مقدار آنها به صورت undefined ارزیابی میشود، مگر اینکه دستور 'unsafe-eval' در بخش script-src از CSP داده شده باشد.
| دستورالعمل | محتوا |
|---|---|
script-src | 'unsafe-eval' |
حالت پیشنمایش
برای استفاده از حالت پیشنمایش گوگل تگ منیجر، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com https://tagmanager.google.com |
style-src | https://www.googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com |
img-src | https://www.googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com |
font-src | https://fonts.gstatic.com data: |
گوگل آنالیتیکس
برای استفاده از گوگل آنالیتیکس، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com |
img-src | https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net |
connect-src | https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net https://pagead2.googlesyndication.com |
frame-src | https://www.googletagmanager.com |
برای استفاده از گوگل آنالیتیکس بدون هیچ گونه ویژگی تبلیغاتی، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com |
img-src | https://www.googletagmanager.com https://*.google-analytics.com |
connect-src | https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com |
تبلیغات گوگل
برای استفاده از تگ تبدیل، ریمارکتینگ یا Conversion Linker گوگل ادز، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com https://www.googleadservices.com https://www.google.com |
img-src | https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> |
connect-src | https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> https://ad.doubleclick.net |
frame-src | https://www.googletagmanager.com |
دادههای کاربران گوگل ادز
برای استفاده از بیکنهای دادههای کاربر گوگل ادز هنگام اجرا در زمینههای امن، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com |
connect-src | https://www.google.com |
frame-src | https://www.googletagmanager.com |
چراغ راهنمای دادههای کاربر تبلیغات گوگل در زمینههای ناامن اجرا نمیشود، بنابراین پیکربندی CSP در این موارد قابل اجرا نیست.
نورافکن
برای استفاده از Floodlight، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
img-src | https://www.googletagmanager.com https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com |
connect-src | https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com https://ad.doubleclick.net |
frame-src | https://www.googletagmanager.com |
برای استفاده از اسکریپتهای سفارشی Floodlight، CSP باید موارد زیر را نیز (علاوه بر موارد قبلی) مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
frame-src | https://*.fls.doubleclick.net |
مرکز تجاری
برای استفاده از مرکز فروشندگان، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
script-src-elem | https://www.googletagmanager.com |
img-src | https://*.merchant-center-analytics.goog |
connect-src | https://*.merchant-center-analytics.goog |
کارگر خدماتی
برای استفاده از سرویس ورکر برای تطبیق پیشرفته، بیکنهای دادههای کاربر و تبدیل تبلیغات، CSP باید موارد زیر را مجاز بداند:
| دستورالعمل | محتوا |
|---|---|
frame-src | https://www.googletagmanager.com |
عیبیابی با دستیار برچسب
برای عیبیابی مشکلات مربوط به سیاست امنیت محتوا (CSP)، از Tag Assistant استفاده کنید. Tag Assistant فهرست منابعی را که توسط سیاست امنیت محتوای شما مسدود شدهاند، نمایش میدهد.
دستیار برچسب را باز کنید و آدرس وبسایت خود را وارد کنید. یک برگه جدید با وبسایت شما باز میشود.
اگر سیاست امنیتی محتوا در صفحه شما منبعی را مسدود میکند، یک مشکل CSP در بخش مشکلات صفحه از Tag Assistant نمایش داده میشود.

برای مشاهده لیست تمام منابع مسدود شده در صفحه خود، گزینه «مشاهده مشکل» را در کنار مشکل CSP انتخاب کنید.

تمام منابع مسدود شده را به سیاست امنیت محتوای خود اضافه کنید.