با یک خط مشی امنیتی محتوا یکپارچه شوید

سیاست امنیتی محتوا (CSP) وسیله ای برای ایمن سازی صفحه وب شما با محدود کردن منابع و اسکریپت هایی است که مجاز به بارگیری و اجرا هستند. می توانید CSP را با تنظیم یک سرصفحه Content-Security-Policy در پاسخ های HTTP از سرور وب خود فعال کنید.

دو روش استاندارد برای پیکربندی CSP وجود دارد:

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

  2. یک nonce تصادفی را مشخص کنید که منابع موجود در صفحه باید با آن علامت گذاری شوند تا بارگذاری شوند. این رویکرد به عنوان CSP سخت شناخته می شود.

از آنجا که دامنه‌هایی که Google Publisher Tag (GPT) استفاده می‌کند در طول زمان تغییر می‌کنند، ما فقط از CSP سختگیرانه (گزینه 2) پشتیبانی می‌کنیم. این رویکرد نیاز به حفظ فهرست متحرک از دامنه‌هایی را که ممکن است قدیمی شده و سایت شما را خراب کنند، از بین می‌برد.

راه اندازی CSP با GPT

  1. CSP را در وب سرور خود فعال کنید.

    مراحل ذکر شده در اتخاذ CSP سختگیرانه را برای تنظیم هدر CSP دنبال کنید و nonce را برای هر تگ اسکریپت در صفحه خود از جمله gpt.js اعمال کنید. GPT به طور خاص از دستورالعمل های CSP زیر پشتیبانی می کند:

    Content-Security-Policy:
      object-src 'none';
      script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
      base-uri 'none';
      report-uri https://your-report-collector.example.com/
    

    اگر با شرایط استفاده شما مطابقت داشته باشد، می توانید خط مشی سهل گیرتری را انتخاب کنید. ممکن است سیاست‌های محدودکننده‌تر بدون اطلاع قبلی شکسته شوند.

  2. رندر بین دامنه‌ای را فعال کنید.

    iframe های تبلیغاتی می توانند منابع خارجی را بارگیری کنند که ممکن است توسط CSP مجاز نباشد. از آنجایی که همان iframe های دامنه CSP پنجره سطح بالا را به ارث می برند و GPT نمی تواند محتویات خلاقیت را کنترل کند، خلاقیت های همان دامنه عموماً به درستی با هدرهای CSP کار نمی کنند.

    برای فعال کردن رندر متقابل دامنه برای همه خلاقیت‌ها، googletag.pubads().setForceSafeFrame(true) قبل از بارگیری هر جایگاه تبلیغاتی اجرا کنید.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

تست کردن

توصیه می کنیم ابتدا خط مشی های خود را با تنظیم سرصفحه Content-Security-Policy-Report-Only به جای Content-Security-Policy آزمایش کنید. هدر تخلفات را گزارش می کند اما همچنان آنها را در صفحه مجاز می کند.