تحذير: بدءًا من الإصدار 57، لن يسمح Chrome باستخدام محتوى الويب الخارجي (بما في ذلك والإطارات المضمنة والنصوص البرمجية) داخل الصفحات في وضع الحماية. يُرجى استخدام webview بدلاً من ذلك.
تحدّد هذه السياسة مجموعة من صفحات التطبيقات أو الإضافات التي سيتم عرضها في مصدر فريد في وضع الحماية، واختيار سياسة أمان محتوى لاستخدامها مع هذه السياسات. يؤدي استخدام وضع الحماية إلى تأثيرَين:
- لن تتمكن الصفحة التي تم وضع الحماية لها من الوصول إلى الإضافات أو واجهات برمجة تطبيقات التطبيقات، أو الوصول المباشر إلى
الصفحات التي لم يتم وضع الحماية لها (قد تتواصل معها عبر
postMessage()
). لا تخضع الصفحة في وضع الحماية لسياسة أمان المحتوى (CSP) التي تستخدمها بقية التطبيق أو الإضافة (لها قيمة سياسة CSP منفصلة خاصة بها) وهذا يعني أنه، على سبيل المثال، يمكنه استخدام النص البرمجي المضمّن و
eval
.على سبيل المثال، إليك كيفية تحديد عرض صفحتين إضافة في وضع الحماية من خلال سياسة أمان محتوى (CSP) مخصصة:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }
إذا لم يتم تحديده، تكون قيمة
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 لرموز ساندبوكس المحتملة). قد لا يسمح أيضًا سياسة CSP التي تحددها بتحميل محتوى ويب خارجي داخل صفحات في وضع الحماية.
تجدر الإشارة إلى أنّك تحتاج فقط إلى إدراج الصفحات التي توقّعت أن يتم تحميلها في نوافذ أو إطارات. المراجِع
المستخدمة من قبل الصفحات التي تم وضع الحماية لها (على سبيل المثال، أوراق الأنماط أو ملفات مصدر JavaScript) لا يلزم ظهورها في
sandboxed_page
، سيستخدم وضع الحماية للصفحة التي تتضمنه.
"استخدام eval في إضافات Chrome: بأمان". يقدّم لك هذا القسم مزيدًا من التفاصيل حول تنفيذ في وضع الحماية الذي يتيح استخدام المكتبات التي قد تواجه مشكلات في التنفيذ بموجب سياسة أمان المحتوى التلقائية للإضافة.
لا يمكن تحديد الصفحة التي تم وضع الحماية لها إلا عند استخدام manifest_version
2 أو الإصدارات الأحدث.