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

تحدّد هذه السياسة مجموعة من صفحات الإضافات التي سيتم عرضها في مصدر فريد في وضع الحماية. تشير رسالة الأشكال البيانية يتم تحديد "سياسة أمان المحتوى" التي تستخدمها الصفحات التي تم وضع الحماية لها في الإضافة في مفتاح "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" مزيدًا من التفاصيل حول تنفيذ وضع الحماية الذي يتيح استخدام المكتبات التي قد تواجه مشكلات في التنفيذ بموجب سياسة أمان المحتوى التلقائية الخاصة بالإضافة.