مساحة التخزين وملفات تعريف الارتباط

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

يمكنك الاطّلاع على chrome.storage للحصول على معلومات عن واجهة برمجة التطبيقات الخاصة بالإضافة.

مساحة التخزين

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

الإصرار

لا يتم محو مساحة تخزين الإضافة عندما يمحو أحد المستخدمين بيانات التصفّح. وينطبق هذا على أي بيانات مخزنة باستخدام واجهات برمجة التطبيقات لتخزين الويب (مثل Local Storage وIndexedDB).

تخضع الإضافات تلقائيًا لقيود الحصة العادية على مساحة التخزين، والتي يمكن التحقّق منها من خلال طلب الرقم navigator.storage.estimate(). يمكن أيضًا التخلص من التخزين تحت ضغط شديد في الذاكرة، على الرغم من أن هذا نادر الحدوث. لتجنّب ذلك، اتّبِع الخطوات التالية:

  • يمكنك طلب الإذن "unlimitedStorage" الذي يؤثر في كل من واجهات برمجة التطبيقات للإضافات ومساحة التخزين على الويب، ويستثني الإضافات من القيود المفروضة على الحصص وإخلاء مساحة.
  • يمكنك الاتصال بالرقم navigator.storage.persist() للحصول على حماية من الإخلاء.

تتم مشاركة مساحة تخزين الإضافات من خلال مصدر الإضافة، بما في ذلك مشغّل خدمات الإضافات، وأي صفحات إضافات (بما في ذلك النوافذ المنبثقة واللوحة الجانبية) والمستندات خارج الشاشة. في النصوص البرمجية للمحتوى، يتم الوصول إلى البيانات من صفحة المضيف التي تم إدخال النص البرمجي للمحتوى إليها وليس الإضافة.

الوصول إلى مشغِّلي الخدمات

يمكن الوصول إلى واجهات برمجة التطبيقات IndexedDB ومساحة التخزين في ذاكرة التخزين المؤقت في مشغّلي الخدمات. ولكن التخزين المحلي وتخزين الجلسات ليسا كذلك.

إذا كنت بحاجة إلى الوصول إلى "التخزين المحلي" أو "مساحة تخزين الجلسة" من مشغّل الخدمات، استخدِم مستندًا خارج الشاشة.

التقسيم

فالتقسيم هو المكان الذي يتم فيه إدخال المفاتيح للبيانات المخزنة لتحديد المكان الذي يمكن الوصول إليه فيه. في الماضي، كانت مساحة التخزين مرتبطة بالمصدر.

بدءًا من الإصدار 115 من Chrome، يقدّم تقسيم مساحة التخزين تغييرات في كيفية تحديد مفاتيح التقسيم لمنع أنواع معيّنة من تتبُّع مواقع إلكترونية متعددة. من الناحية العملية، يعني هذا أنّه إذا كان الموقع "أ" يتضمّن إطار iframe يحتوي على الموقع "ب"، لن يتمكّن الموقع "ب" من الوصول إلى مساحة التخزين نفسها التي تتوفّر عادةً عند الانتقال إليها مباشرةً.

للحدّ من تأثير ذلك في الإضافات، ينطبق استثناءان:

  • في حال تضمين صفحة تتضمّن المخطط chrome-extension:// في أي موقع إلكتروني، لن يتم تطبيق ميزة تقسيم مساحة التخزين، وسيكون بإمكان الإضافة الوصول إلى القسم ذي المستوى الأعلى.
  • إذا كانت الصفحة التي تحتوي على المخطط chrome-extension:// تتضمن إطار iframe، وكانت الإضافة لديها أذونات مضيف للموقع الإلكتروني الذي تضمّنه، يمكن لهذا الموقع الإلكتروني أيضًا الوصول إلى القسم ذي المستوى الأعلى.

بسكويت

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

تأمين ملفات تعريف الارتباط

تتوافق سمة ملف تعريف الارتباط Secure مع مخطط https:// فقط. وبالتالي، لا يمكن لصفحات chrome-extension:// ضبط ملفات تعريف الارتباط باستخدام هذه السمة.

يعني ذلك أيضًا أنّ صفحات الإضافات لا يمكنها استخدام سمات أخرى لملفات تعريف الارتباط حيث تكون السمة Secure مطلوبة:

التقسيم وسلوك SameSite

إنّ ملفات تعريف الارتباط التي يتم ضبطها على صفحات chrome-extension:// دائمًا ما تستخدم SameSite=Lax. وبالتالي، لا يمكن مطلقًا الوصول إلى ملفات تعريف الارتباط التي تم ضبطها من خلال إضافة على أصلها في الإطارات، ولا يكون للتقسيم أي صلة.

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

  • لا يتم مطلقًا حظر ملفات تعريف الارتباط التابعة لجهات خارجية حتى في الإطارات الفرعية إذا كانت صفحة المستوى الأعلى لعلامة تبويب معيَّنة هي صفحة chrome-extension://.
  • يتم التعامل مع الطلبات الواردة من إضافة إلى جهة خارجية على أنّها موقع إلكتروني واحد إذا كانت الإضافة تتضمّن أذونات مضيف للجهة الخارجية. هذا يعني أنّه يمكن إرسال ملفات تعريف الارتباط "SameSite=Strict". يُرجى العلم أنّ هذا الإجراء لا ينطبق إلا على طلبات الشبكة، وليس من خلال document.cookie في JavaScript، ولا ينطبق في حال حظر ملفات تعريف الارتباط التابعة لجهات خارجية.

يُرجى العلم بأنّ الإعدادات المتعلّقة بملفات تعريف الارتباط التابعة لجهات خارجية تتأثّر بعمل "مبادرة حماية الخصوصية" ويتم تعديلها وفقًا للمخطط الزمني الخاص بها.

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