البيان: سياسة أمان المحتوى

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

تسري سياسة "صفحات الإضافة" على سياقات الصفحات والعاملين في الإضافة. ويشمل ذلك النافذة المنبثقة الخاصة بالإضافة، والعامل في الخلفية، وعلامات التبويب التي تحتوي على صفحات HTML أو إطارات iframe تم فتحها من خلال الإضافة. يتم تطبيق سياسة وضع الحماية على جميع الصفحات المحدَّدة كصفحة وضع الحماية في ملف البيان.

السياسة التلقائية

في حال لم يحدّد المستخدم سياسة أمان المحتوى في البيان، سيتم استخدام الخصائص التلقائية لكل من صفحات الإضافات وصفحات الإضافات المحمية بميزة "وضع الحماية".

تعادل هذه الإعدادات التلقائية تحديد السياسات التالية في بيان التطبيق:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

في هذه الحالة، ستحمّل الإضافة فقط النصوص البرمجية والكائنات المحلية من مواردها المجمّعة. سيتم إيقاف WebAssembly، ولن تشغِّل الإضافة JavaScript مضمَّنة أو تتمكن من تقييم السلاسل كرمز برمجي تنفيذي. في حال إضافة صفحة وضع الحماية، ستحصل على أذونات أكثر استرخاءً لتقييم النصوص البرمجية من خارج الإضافة.

الحد الأدنى والمخصص من سياسات أمان المحتوى

ويمكن للمطوّرين إضافة قواعد إلى الإضافة أو إزالتها، أو استخدام الحد الأدنى من سياسة أمان المحتوى المطلوبة لتلبية احتياجات مشروعهم.

سياسة صفحات الإضافات

يفرض Chrome حدًا أدنى من سياسة أمان المحتوى على صفحات الإضافات. يعادل تحديد السياسة التالية في بيان التطبيق:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

لا يمكن تخفيف سياسة extension_pages بما يتجاوز هذا الحد الأدنى للقيمة. بعبارة أخرى، لا يمكنك إضافة مصادر نصوص برمجية أخرى إلى التوجيهات، مثل إضافة 'unsafe-eval' إلى script-src. في حال إضافة مصدر غير مسموح به إلى سياسة الإضافة، سيعرض Chrome خطأ مثل هذا أثناء التثبيت:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

سياسة صفحات وضع الحماية

إنّ السياسة التلقائية للصفحات المتوفّرة في وضع الحماية أكثر تساهلاً مقارنةً بصفحات الإضافات، لأنّ صفحة وضع الحماية لا يمكنها الوصول إلى واجهات برمجة التطبيقات للإضافات أو الوصول المباشر إلى الصفحات غير المشمولة في وضع الحماية. يمكن تخصيص سياسة أمان محتوى وضع الحماية حسب الحاجة.