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

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

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

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

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

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

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

  1. تفعيل CSP على خادم الويب.

    اتّبِع الخطوات الموضّحة في استخدام سياسة CSP صارمة لإعداد عنوان مقدم خدمة الضبط (CSP) وتطبيق السياسة الخاصة على كل علامة نص برمجي على صفحتك، بما في ذلك 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 async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></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. ويُبلِّغ الرأس عن الانتهاكات، ولكنه لا يزال يسمح بها على الصفحة.