خطمشی امنیتی محتوا (CSP) یک استاندارد امنیتی وب است که بهطور گسترده پشتیبانی میشود و هدف آن جلوگیری از انواع خاصی از حملات مبتنی بر تزریق با دادن کنترل به توسعهدهندگان بر منابع بارگذاریشده توسط برنامههایشان است. از این راهنما برای درک نحوه پیادهسازی «مدیر برچسب Google» در سایتهایی که از CSP استفاده میکنند استفاده کنید.
برچسب محتوی را برای استفاده از CSP فعال کنید
برای استفاده از Google Tag Manager در صفحهای با CSP، CSP باید اجازه دهد
کد محتوی Tag Manager شما اجرا شود. این کد بهصورت کد جاوا اسکریپت بهخط ساخته شده است که اسکریپت gtm.js را تزریق میکند. چندین روش برای انجام این کار وجود دارد، مانند استفاده از یک عدد یکبارمصرف یا یک هش. روش توصیهشده استفاده از
nonce است که باید مقداری تصادفی و غیرقابلحدس باشد که سرور بهطور جداگانه برای هر پاسخ تولید میکند. مقدار nonce را در دستور Content-Security-Policy script-src-elem بهصورت nonce-{SERVER-GENERATED-NONCE} ارائه دهید و از نسخه آگاه از 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 -->
سپس «مدیر برچسب» عدد یکبارمصرف را به هر دستورگانی که به صفحه اضافه میکند منتشر میکند.
رویکردهای دیگری برای فعال کردن اجرای متن بهخط وجود دارد، مانند ارائه درهمسازی متن بهخط در CSP.
اگر رویکردهای nonce یا درهمسازی توصیهشده امکانپذیر نیست، میتوانید
با افزودن دستورالعمل 'unsafe-inline' به بخش script-src-elem CSP،
اسکریپت درونخطی Tag Manager را فعال کنید.
برای استفاده از این رویکرد، موارد زیر باید توسط 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 |
متغیرهای جاوا اسکریپت سفارشی
بهدلیل نحوه پیادهسازی متغیرهای سفارشی JavaScript،
این متغیرها درصورت وجود CSP به undefined ارزیابی میشوند، مگراینکه
دستورالعمل 'unsafe-eval' در بخش script-src CSP ارائه شده باشد.
| بخشنامه | محتوا |
|---|---|
script-src |
'unsafe-eval' |
حالت پیشنمایش
برای استفاده از حالت پیشنمایش Google Tag Manager، خطمشی امنیت محتوا باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
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: |
Google Analytics
برای استفاده از Google Analytics، خطمشی امنیتی محتوا باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
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 |
برای استفاده از Google Analytics بدون هیچیک از ویژگیهای Ads، خطمشی امنیتی محتوا باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
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 |
Google Ads
برای استفاده از برچسب «تبدیل Google Ads»، «بازاریابی مجدد»، یا «پیونددهنده تبدیل»، 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 |
دادههای کاربر Google Ads
برای استفاده از چراغهای داده کاربر Google Ads هنگام اجرا در زمینههای امن، CSP باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
connect-src |
https://www.google.com |
frame-src |
https://www.googletagmanager.com |
فانوس دادههای کاربر Google Ads در زمینههای ناامن اجرا نمیشود، بنابراین پیکربندی CSP در این موارد قابلاجرا نیست.
Floodlight
برای استفاده از Floodlight، خطمشی امنیتی محتوا باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
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، خطمشی امنیتی محتوا باید موارد زیر را نیز (علاوهبر موارد قبلی) مجاز کند:
| بخشنامه | محتوا |
|---|---|
frame-src |
https://*.fls.doubleclick.net |
Merchant Center
برای استفاده از Merchant Center، «خطمشی امنیتی محتوا» باید موارد زیر را مجاز کند:
| بخشنامه | محتوا |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://*.merchant-center-analytics.goog |
connect-src |
https://*.merchant-center-analytics.goog |
دروازه برچسب Google برای آگهیدهندگان
وقتی از دروازه برچسب Google برای آگهیدهندگان استفاده میکنید، برچسب Google
از مسیر سنجش در وبسایت شما (برای مثال، https://www.example.com/metrics) بار میشود و دادهها را به آن ارسال میکند. برخیاز برچسبها همچنان درخواستها را به
دامنههای Google ارسال میکنند، بنابراین دستورالعملهای فهرستشده برای هر محصول را حفظ کنید و
موارد زیر را نیز مجاز کنید:
| بخشنامه | محتوا | هدف |
|---|---|---|
script-src-elem |
'self' |
درحال بار کردن برچسب Google از مسیر اندازهگیری شما |
img-src |
'self' |
درخواستهای اندازهگیری |
connect-src |
'self' |
درخواستهای اندازهگیری |
worker-src |
'self' |
عامل خدماتی |
مطمئن شوید که CDN یا سرور وب شما سرایند Content-Security-Policy وبسایتتان را به پاسخهای مسیر سنجش شما اضافه نمیکند.
درغیراینصورت، مرورگر میتواند کارگر سرویس را مسدود کند.
برچسبگذاری سمت سرور
وقتی برچسب Google دادهها را به حامل سرور ارسال میکند،
CSP باید سرور برچسبگذاری شما را نیز مجاز کند. این دستورالعملها جایگزین دستورالعملهای فهرستشده برای هر محصول، مانند https://www.googletagmanager.com، نمیشوند.
آنچه اضافه میکنید به محل میزبانی سرور برچسبگذاری شما بستگی دارد:
| بخشنامه | راهاندازی هممبدأ | راهاندازی زیردامنه | هدف |
|---|---|---|---|
img-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
درخواستهای اندازهگیری |
connect-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
درخواستهای اندازهگیری |
frame-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
عامل خدماتی |
worker-src |
'self' |
نیاز نبود | عامل خدماتی |
script-src-elem |
'self' |
https://TAGGING_SERVER_DOMAIN |
فقط اگر برچسب Google را از سرور برچسبگذاریتان بار کنید |
در راهاندازی هممبدأ، سرور برچسبگذاری از مسیری در وبسایت شما ارائه میشود (برای مثال، https://www.example.com/metrics). در راهاندازی زیردامنه، TAGGING_SERVER_DOMAIN را با دامنه سرور برچسبگذاریتان (برای مثال، sgtm.example.com) جایگزین کنید.
در راهاندازی هممبدأ، مطمئن شوید که CDN یا سرور وب شما سرصفحه Content-Security-Policy وبسایتتان را به پاسخهای مسیر برچسبگذاری اضافه نمیکند.
درغیراینصورت، مرورگر میتواند کارگر سرویس را مسدود کند.
عامل خدماتی
برچسب Google فقط زمانی از کارگر سرویس استفاده میکند که از دروازه برچسب Google برای آگهیدهندگان یا برچسبگذاری سمت سرور استفاده کنید. برای دستورالعملهایی که هر راهاندازی نیاز دارد، دروازه برچسب Google برای آگهیدهندگان و برچسبگذاری سمت سرور را ببینید. اگر از هر دو استفاده میکنید، CSP باید هر دو را مجاز کند.
عیبیابی با «دستیار برچسب»
برای عیبیابی مشکلات «خطمشی امنیتی محتوا» (CSP)، از دستیار برچسب استفاده کنید. «دستیار برچسب» فهرست منابعی را که توسط «خطمشی امنیتی محتوا» مسدود شدهاند نمایش میدهد.
دستیار برچسب را باز کنید و نشانی وبسایتتان را وارد کنید. زبانه جدیدی با وبسایت شما باز میشود.
اگر «خطمشی امنیتی محتوا» در صفحهتان منبعی را مسدود میکند، مشکل CSP در بخش مشکلات صفحه در Tag Assistant نمایش داده میشود.

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

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