سیاست امنیتی محتوا (CSP) یک استاندارد امنیتی وب است که به طور گسترده پشتیبانی میشود و هدف آن جلوگیری از انواع خاصی از حملات مبتنی بر تزریق است که با دادن کنترل به توسعهدهندگان بر منابع بارگذاری شده توسط برنامههایشان انجام میشود. از این راهنما برای درک نحوه استقرار Google Tag Manager در سایتهایی که از CSP استفاده میکنند، استفاده کنید.
فعال کردن تگ کانتینر برای استفاده از CSP
برای استفاده از گوگل تگ منیجر در صفحهای با CSP، CSP باید اجازه اجرای کد کانتینر تگ منیجر شما را بدهد. این کد به صورت کد جاوا اسکریپت درونخطی ساخته شده است که اسکریپت gtm.js را تزریق میکند. روشهای مختلفی برای انجام این کار وجود دارد، مانند استفاده از nonce یا hash. روش پیشنهادی استفاده از 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 www.google.com
سپس از نسخه بدون محدودیت کد کانتینر تگ منیجر درونخطی استفاده کنید. ویژگی بدون محدودیت را در عنصر اسکریپت درونخطی روی همین مقدار تنظیم کنید:
<!-- 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 مربوط به CSP فعال کرد.
برای استفاده از این رویکرد، دستورالعملهای زیر در CSP مورد نیاز است:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | 'unsafe-inline' https://www.googletagmanager.com |
| img-src | www.googletagmanager.com |
| اتصال-src | www.googletagmanager.com www.google.com |
متغیرهای سفارشی جاوا اسکریپت
با توجه به نحوه پیادهسازی متغیرهای سفارشی جاوا اسکریپت ، در صورت وجود CSP، مقدار آنها به صورت undefined ارزیابی میشود، مگر اینکه دستور 'unsafe-eval' در بخش script-src از CSP داده شده باشد.
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | 'ارزیابی ناامن' |
حالت پیشنمایش
برای استفاده از حالت پیشنمایش گوگل تگ منیجر، CSP باید دستورالعملهای زیر را شامل شود:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | https://googletagmanager.com https://tagmanager.google.com |
| سبک-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 |
| فونت-src | دادههای https://fonts.gstatic.com: |
گوگل آنالیتیکس ۴ (گوگل آنالیتیکس)
برای استفاده از تگ گوگل آنالیتیکس ۴ (Google Analytics)، CSP باید دستورالعملهای زیر را شامل شود:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | https://*.googletagmanager.com |
| img-src | https://*.google-analytics.com https://*.googletagmanager.com |
| اتصال-src | https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com |
برای استقرار گوگل آنالیتیکس ۴ (گوگل آنالیتیکس) با استفاده از گوگل سیگنالز، CSP باید شامل دستورالعملهای زیر باشد:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | https://*.googletagmanager.com |
| img-src | https://*.google-analytics.com https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD> |
| اتصال-src | https://*.google-analytics.com https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD> https://pagead2.googlesyndication.com |
| قاب-src | https://www.googletagmanager.com |
تبلیغات گوگل
برای استفاده از تگ تبدیل، ریمارکتینگ یا Conversion Linker گوگل ادز، CSP باید دستورالعملهای زیر را شامل شود:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com https://pagead2.googlesyndication.com https://googleads.g.doubleclick.net |
| img-src | https://www.googletagmanager.com https://googleads.g.doubleclick.net https://www.google.com https://pagead2.googlesyndication.com https://www.googleadservices.com https://google.com https://www.google.<TLD> |
| قاب-src | https://www.googletagmanager.com |
| اتصال-src | https://pagead2.googlesyndication.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://ad.doubleclick.net https://www.google.com https://google.com https://www.google.<TLD> |
بیکن دادههای کاربر گوگل ادز
برای استفاده از بیکنهای دادههای کاربر گوگل ادز هنگام اجرا در زمینههای امن، CSP باید دستورالعملهای زیر را شامل شود:
| دستورالعمل | محتوا |
|---|---|
| اسکریپت-src | https://www.googletagmanager.com |
| قاب-src | https://www.googletagmanager.com |
| اتصال-src | https://google.com https://www.google.com |
چراغ راهنمای دادههای کاربر تبلیغات گوگل در زمینههای ناامن اجرا نمیشود، بنابراین پیکربندی CSP در این موارد قابل اجرا نیست.
نورافکن
کاربران Floodlight میتوانند CSPها را با استفاده از پیکربندیهای زیر فعال کنند. مقادیر <FLOODLIGHT-CONFIG-ID> را با یک شناسه تبلیغکننده Floodlight خاص یا * برای مجاز کردن هر شناسه تبلیغکننده جایگزین کنید:
برای همه کاربران:
| دستورالعمل | محتوا |
|---|---|
| img-src | https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com https://www.googletagmanager.com |
| قاب-src | https://www.googletagmanager.com |
| اتصال-src | https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com https://ad.doubleclick.net |
برای بیکنهای «اسکریپتهای سفارشی»:
| دستورالعمل | محتوا |
|---|---|
| قاب-src | https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net |
برای تگهای تصویر:
| دستورالعمل | محتوا |
|---|---|
| img-src | https://ad.doubleclick.net https://ade.googlesyndication.com |
کارگر خدماتی
برای استفاده از Service Worker برای تطبیق پیشرفته، بیکنهای دادههای کاربر و تبدیلهای تبلیغات، CSP باید دستورالعملهای زیر را شامل شود:
| دستورالعمل | محتوا |
|---|---|
| قاب-src | https://www.googletagmanager.com |
عیبیابی با دستیار برچسب
برای عیبیابی مشکلات مربوط به سیاست امنیت محتوا (CSP)، از Tag Assistant استفاده کنید. Tag Assistant فهرست منابعی را که توسط سیاست امنیت محتوای شما مسدود شدهاند، نمایش میدهد.
دستیار برچسب را باز کنید و آدرس وبسایت خود را وارد کنید. یک برگه جدید با وبسایت شما باز میشود.
اگر سیاست امنیتی محتوا در صفحه شما منبعی را مسدود میکند، یک مشکل CSP در بخش مشکلات صفحه از Tag Assistant نمایش داده میشود.

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

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