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

إذا لم تكن على دراية بسياسة أمان المحتوى (CSP)، ننصحك بأن تبدأ مقدمة عن سياسة أمان المحتوى. يتناول هذا المستند نهج سياسة أمان المحتوى في تطبيقات Chrome على نطاق أوسع، إنّ سياسة Chrome App CSP ليست بالمرونة نفسها.

إنّ سياسة أمان المحتوى (CSP) هي سياسة تهدف إلى الحدّ من مشاكل النصوص البرمجية على المواقع الإلكترونية، ونحن ندرك جميعًا أنّ استخدام النصوص البرمجية على المواقع الإلكترونية سيئ. لن نحاول إقناعك بأنّ سياسة CSP هي سياسة جديدة تمامًا. عليك تعلّم كيفية أداء المهام الأساسية بشكل مختلف.

الغرض من هذا المستند هو إخبارك تحديدًا بسياسة سياسة أمان المحتوى (CSP) لتطبيقات Chrome، والإجراءات المطلوبة للالتزام بها، وكيفية الاستمرار في أداء تلك المهام الأساسية بطريقة تتوافق مع سياسة CSP.

ما هي سياسة أمان المحتوى (CSP) لتطبيقات Chrome؟

تحظر سياسة أمان المحتوى لتطبيقات Chrome ما يلي:

  • لا يمكنك استخدام البرمجة النصية المضمّنة في صفحات تطبيق Chrome. يحظر هذا التقييد عمليات حظر <script> ومعالجات الأحداث (<button onclick="...">).
  • لا يمكنك الإشارة إلى أي موارد خارجية في أي من ملفات تطبيقك (باستثناء موارد الفيديو والصوت). لا يمكنك تضمين الموارد الخارجية في iframe.
  • لا يمكنك استخدام طرق تحويل سلسلة إلى JavaScript، مثل eval() وnew Function().

ويتم تنفيذ ذلك من خلال قيمة السياسة التالية:

default-src 'self';
connect-src * data: blob: filesystem:;
style-src 'self' data: 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' data:;
font-src 'self' data:;
media-src * data: blob: filesystem:;

ويمكن لتطبيق Chrome الإشارة إلى النصوص البرمجية والكائنات داخل تطبيقك فقط، باستثناء ملفات الوسائط (يمكن أن تشير التطبيقات إلى الفيديو والصوت خارج الحزمة). ستتيح لك إضافات Chrome تخفيف قيود سياسة أمان المحتوى التلقائية، بينما لا تفعل تطبيقات Chrome ذلك.

كيفية الالتزام بسياسة أمان المحتوى (CSP)

يجب أن تكون جميع موارد JavaScript وجميع الموارد محلية (يتم تجميع كل شيء في تطبيق Chrome).

"ولكن كيف يمكنني..."

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

استخدام مكتبات النماذج

استخدم مكتبة تقدم نماذج مجمعة مسبقًا وستكون جاهزًا لذلك. لا يزال بإمكانك استخدام مكتبة لا تقدم تجميعًا مسبقًا، ولكنها ستتطلب بعض العمل من جانبك وهناك قيود.

ستحتاج إلى استخدام وضع الحماية لعزل أي محتوى تريد تقييم الأمور من أجله. يؤدي استخدام وضع الحماية إلى تحسين سياسة أمان المحتوى (CSP) على المحتوى الذي تحدِّده. إذا أردت استخدام واجهات برمجة تطبيقات Chrome الفعّالة جدًا في تطبيق Chrome، لا يمكن للمحتوى المحمي في وضع الحماية التفاعل مباشرةً مع واجهات برمجة التطبيقات هذه (راجِع محتوى وضع الحماية المحلي).

الوصول إلى الموارد عن بُعد

يمكنك جلب الموارد عن بُعد من خلال XMLHttpRequest وعرضها من خلال عناوين URL blob: أو data: أو filesystem: (يمكنك الاطّلاع على الإشارة إلى الموارد الخارجية).

يمكن تحميل الفيديو والصوت من الخدمات البعيدة لأنّها تتمتع بسلوك احتياطي جيد عندما يكون الاتصال غير متصل بالإنترنت أو يكون غير متصل بالإنترنت.

تضمين محتوى على الويب

وبدلاً من استخدام إطار iframe، يمكنك استدعاء عنوان URL خارجي باستخدام علامة WebView (راجع تضمين صفحات ويب خارجية).