التكامل مع سياسة أمان المحتوى

تُعد سياسة أمان المحتوى (CSP) وسيلة لتأمين صفحة الويب عن طريق تحديد الموارد والنصوص البرمجية التي يُسمح بتحميلها وتنفيذه. يمكنك تفعيل سياسة CSP من خلال ضبط عنوان Content-Security-Policy في استجابات HTTP من خادم الويب

هناك طريقتان عاديتان لضبط سياسة أمان المحتوى (CSP):

  1. حدِّد قائمة مسموح بها بالنطاقات التي يمكنها إدخال مواردها في الصفحة.

  2. تحديد رقم عشوائي للموارد على الصفحة من أجل تحميله. ويُعرف هذا النهج باسم سياسة CSP الصارمة.

لأنّ النطاقات التي تستخدمها علامة "ناشر Google" (GPT) تتغير بمرور الوقت، فنحن نتيح فقط استخدام سياسة CSP الصارمة (الخيار 2). يلغي هذا النهج الحاجة إلى الاحتفاظ بقائمة بالنطاقات التي قد تصبح قديمة وتعطل موقعك.

إعداد CSP باستخدام GPT

  1. فعِّل سياسة CSP على خادم الويب.

    اتّبِع الخطوات الموضّحة في مقالة اعتماد سياسة CSP الصارمة من أجل: إعداد عنوان CSP وتطبيق nonce على كل علامة نص برمجي على صفحتك، بما في ذلك gpt.js. يدعم جدول تقسيم المعرّف الفريد العمومي ما يلي على وجه التحديد: توجيهات 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 يبلغ العنوان عن الانتهاكات ولكنه لا يزال يسمح على الصفحة.