البيان - وضع الحماية

تحدِّد هذه السياسة مجموعة من صفحات الإضافات التي سيتم عرضها في مصدر فريد مضمَّن في وضع الحماية. يتم تحديد سياسة أمان المحتوى التي تستخدمها صفحات الإضافة في وضع الحماية في مفتاح "content_security_policy".

وجود أثرين في وضع الحماية:

  1. لن تتمكن الصفحة المحمية من الوصول إلى واجهات برمجة التطبيقات للإضافات أو الوصول المباشر إلى الصفحات غير المشمولة في وضع الحماية (قد تتواصل معها باستخدام postMessage()).
  2. لا تخضع الصفحة المحمية بوضع الحماية لسياسة أمان المحتوى (CSP) التي تستخدمها بقية الإضافة (لها قيمة CSP منفصلة خاصة بها). وهذا يعني أنّه يمكن مثلاً استخدام نص برمجي مضمّن وeval().

على سبيل المثال، إليك كيفية تحديد صفحتَي إضافة لعرضهما في وضع حماية باستخدام سياسة CSP مخصَّصة:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

وفي حال عدم تحديد قيمة، ستكون قيمة "content_security_policy" التلقائية هي sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';.

يمكنك تحديد قيمة سياسة أمان المحتوى (CSP) لفرض قيود إضافية على وضع الحماية، ولكن يجب أن تتضمّن القيمة توجيه "sandbox" ويجب ألا تحتوي على الرمز المميّز allow-same-origin (راجِع مواصفات HTML5 للتعرّف على الرموز المميّزة المحتمَلة لوضع الحماية).

تجدر الإشارة إلى أنّك تحتاج فقط إلى سرد الصفحات التي تتوقّع أن يتم تحميلها في النوافذ أو الإطارات. لا تحتاج الموارد التي تستخدمها الصفحات ذات وضع الحماية (مثل أوراق الأنماط أو ملفات مصدر JavaScript) إلى أن تظهر في قائمة pages لأنها ستستخدم وضع الحماية للإطار الذي يضمِّنها.

يقدّم لك "استخدام eval() في إضافات Chrome" مزيدًا من التفاصيل حول تنفيذ سير عمل وضع الحماية الذي يتيح استخدام المكتبات التي قد تواجه مشاكل في تنفيذها بموجب سياسة أمان المحتوى التلقائية للإضافة.