مولّد سياسة CSP ومراجعتها

اكتب سياستك توجيهاً في كل سطر، أو افصل بينها بفاصلة منقوطة. تعرض الصفحة الترويسة لنسخها، وجدولاً بالقاعدة الفعلية للنصوص البرمجية والأنماط والصور وغيرها، وتحذيرات للقيم التي تُضعف السياسة.

مجانية تعمل داخل متصفحك آخر مراجعة: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة

توجيهات مثل default-src 'self'. افصل بينها بفاصلة منقوطة أو بسطر جديد. أسماء التوجيهات لا تفرّق بين الأحرف الكبيرة والصغيرة.

طريقة الإرسال

Report-Only هي الترويسة التي تختبر بها السياسة قبل فرضها. اسم الترويسة هو الاسم الموجود في سطر النتيجة.

النتيجة

سطر الترويسة — انسخه إلى إعدادات الخادم، أو إلى إعدادات الترويسات في إطار العمل لديك.
الفحص — تُعرض كل تحذير أسفل النتيجة.
سطر الترويسة
القاعدة السارية لكل مورد

تعمل هذه الأداة داخل متصفحك. ما تكتبه فيها لا يُرسل إلينا.

طريقة الاستخدام

  1. اكتب التوجيهات في السياسة، سطراً لكل توجيه، وبأسمائها كما هي مكتوبة، مثل script-src.
  2. اختر طريقة الإرسال: يفرض Content-Security-Policy السياسة، أما Content-Security-Policy-Report-Only فهي الترويسة التي تختبر بها أولاً.
  3. اقرأ القاعدة السارية لكل مورد لترى التوجيه الذي يغطي النصوص البرمجية والأنماط والصور والإطارات.
  4. انسخ سطر الترويسة إلى خادمك، وأصلح كل تحذير مدرج أسفل النتيجة.

أي قاعدة تسري على المورد

يتحقق المتصفح من كل نوع من الموارد مقابل توجيه واحد. فإذا كان ذلك التوجيه غير موجود، يرجع إلى البديل في سلسلة، ويُظهر الجدول السلسلة التي اتبعها. وتأتي السلاسل من CSP Level 3، القسم 6.8.3.

  • النصوص البرمجية: script-src-elem، ثم script-src، ثم default-src.
  • معالِجات الأحداث المضمّنة: script-src-attr، ثم script-src، ثم default-src.
  • أوراق الأنماط: style-src-elem، ثم style-src، ثم default-src. وتتبع سمات الأنماط المضمّنة النمط نفسه مع style-src-attr.
  • الإطارات: frame-src، ثم child-src، ثم default-src.
  • العمّال: worker-src، ثم child-src، ثم script-src، ثم default-src.
  • الصور والخطوط والوسائط والإضافات وملفات البيان وطلبات fetch: توجيهها الخاص، ثم default-src.

ما يقرؤه الفاحص

تُفصل التوجيهات بفواصل منقوطة، ويقبل هذا الفاحص أسطراً جديدة أيضاً. يُقرأ الاسم حتى أول مسافة، ولا يفرّق بين الأحرف الكبيرة والصغيرة. وحين يظهر توجيه مرتين، يُحسب الأول ويُتجاهل التكرار (CSP Level 3، القسم 2.2.1).

  • الكلمات المفتاحية مثل 'self' و'none' تُكتب بين علامتي تنصيص مفردتين. ويجب أن تقف 'none' وحدها في قائمتها.
  • الـ nonce هو 'nonce-' متبوعة بقيمة base64. والـ hash هو sha256 أو sha384 أو sha512، وشرطة، ثم قيمة base64 (القسم 2.3.1).
  • لا تجوز الفاصلة داخل قيمة توجيه، لأنها تفصل بين السياسات في الترويسة.

ما لا يفعله الفاحص

  • لا يحمّل الصفحة ولا يختبر السياسة في متصفح. يعرض الجدول القاعدة التي سيستخدمها المتصفح، لا إن كانت صفحتك ستعمل بعد ذلك.
  • يتحقق من كتابة الكلمات المفتاحية والـ nonce والـ hash، لكنه لا يفحص المضيفات ومصادر البروتوكول بالتفصيل.
  • لا يحكم على التوجيهات التي لا يعرفها، مثل sandbox، فتبقى في سطر الترويسة كما هي.

مثال محسوب: السياسة النموذجية

مع السياسة النموذجية، تستخدم النصوص البرمجية script-src لأن script-src-elem غير موجود. ولا توجد frame-src أو child-src للإطارات، لذلك ترجع إلى default-src. ولا توجد worker-src أو child-src للعمّال، لذلك تستخدم script-src. يحمل التوجيه style-src القيمة 'unsafe-inline'، ويبلّغ الفاحص عنها تحذيراً واحداً.

المورد المفحوص بالترتيب القاعدة المستخدمة
النصوص البرمجية (عناصر script) script-src-elem، script-src، default-src script-src
الإطارات (iframe) frame-src، child-src، default-src default-src
العمّال (Workers) worker-src، child-src، script-src، default-src script-src

الأسئلة الشائعة

لماذا يُظهر الجدول قاعدة لم أكتبها للنصوص البرمجية؟

المورد الذي لا يملك توجيهاً خاصاً به يستخدم التوجيه الذي يرجع إليه. بالنسبة إلى النصوص البرمجية هو script-src-elem، ثم script-src، ثم default-src. ويعرض الجدول القاعدة التي سيستخدمها المتصفح، لذلك قد يعطيك غياب script-src قاعدة مع ذلك.

ماذا يسمح 'unsafe-inline'؟

يسمح بالنصوص البرمجية أو الأنماط المضمّنة في الأماكن التي يغطيها التوجيه. ووجود nonce أو hash في قائمة المصادر نفسها يجعل المتصفحات تتجاهل 'unsafe-inline' (CSP Level 3، القسم 6.7.3.2)، لذلك استخدم أحدهما للشيفرة المضمّنة التي تحتاجها.

هل أكتب report-uri أم report-to؟

اكتب report-to. تصفه MDN بأنه التوجيه الذي يحل محل report-uri. وما دام report-to غير مدعوم على نطاق واسع، تنصح MDN بإرسال الاثنين، ويحذّرك الفاحص حين يوجد report-uri.

لماذا يُعرض أحد توجيهاتي كتوجيه غير معروف؟

يحكم الفاحص على التوجيهات التي تشحنها المتصفحات وتوثّقها MDN فقط. الاسم الذي لا يعرفه يبقى في سطر الترويسة كما هو، لكنه لا يظهر في الجدول ولا يُحكم عليه.

هل ترسل الأداة سياستي إلى أي مكان؟

لا. تُبنى الترويسة في متصفحك، ولا يُرسل ما تكتبه إلينا ولا يُخزَّن، ولا تُختبر السياسة في أي موقع.

هل CSP Level 3 معيار نهائي؟

ليس بعد. النص الذي يتبعه الفاحص مسودة عمل من W3C بتاريخ 27 أكتوبر 2026، وهي مسودة على مسار التوصية. اقرأ أحدث نسخة قبل أن تعتمد على قاعدة في سياسة إنتاج.

المصادر

آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.

نستخدم ملفات تعريف ارتباط ضرورية لتشغيل الموقع. وبموافقتك، تستخدم Google أيضاً ملفات تعريف ارتباط للإعلانات، لعرض إعلانات مخصصة. وإذا رفضتها، فستظل ترى إعلانات، لكنها لن تكون مخصصة لك.