إجابة سريعة: SessionStorage و localStorage كلاهما واجهات برمجة تطبيقات لتخزين الويب تعتمد على المتصفح وتسمح لمواقع الويب بتخزين البيانات على جهاز المستخدم، لكنهما يختلفان بشكل حاسم في الثبات والنطاق. يحتفظ localStorage بالبيانات إلى أجل غير مسمى عبر الجلسات وعلامات التبويب، بينما يمسح sessionStorage البيانات عند إغلاق علامة تبويب المتصفح. من منظور الخصوصية، يحمل localStorage مخاطر أعلى بكثير لأن البيانات تبقى دون انتهاء صلاحية، مما يجعله هدفًا أكثر جاذبية للتتبع، وبصمات الأصابع، والتدقيق التنظيمي بموجب أطر عمل مثل GDPR.
النقاط الرئيسية
- يستمر localStorage إلى أجل غير مسمى حتى يتم مسحه صراحةً؛ يتم حذف sessionStorage عند إغلاق علامة التبويب أو النافذة.
- كلا نوعي التخزين عرضة لهجمات البرمجة النصية عبر المواقع (XSS) ولا يوفران تشفيرًا مدمجًا.
- لا يتم إرسال بيانات localStorage ولا sessionStorage إلى الخادم تلقائيًا، على عكس ملفات تعريف الارتباط، ولكن كلاهما قابل للقراءة بالكامل بواسطة أي JavaScript يعمل على نفس المصدر.
- يمكن للبرامج النصية التابعة لجهات خارجية المحملة على صفحة الوصول إلى بيانات localStorage إذا كانت تعمل ضمن سياق نفس المصدر.
- بموجب GDPR، يعد تخزين البيانات غير الأساسية في localStorage دون موافقة المستخدم انتهاكًا للامتثال، تمامًا مثل إسقاط ملفات تعريف الارتباط للتتبع.
- يجب عدم تخزين البيانات الحساسة مثل رموز المصادقة وكلمات المرور والمعلومات الشخصية (PII) في أي من الآليتين دون طبقات أمان إضافية.
- يحد التصفح الخاص/المتخفي من استمرارية localStorage ولكنه لا يزيل مخاطر sessionStorage داخل الجلسة.
- يجب على المطورين تفضيل sessionStorage للحالة المؤقتة، أو الجلسات من جانب الخادم، أو ملفات تعريف الارتباط HttpOnly للمصادقة، ومنصة إدارة الموافقة مثل Biscotti CMP لإدارة موافقة التخزين.
ما الفرق بين SessionStorage و LocalStorage؟
SessionStorage و localStorage كلاهما جزء من واجهة برمجة تطبيقات تخزين الويب HTML5، لكنهما يخدمان أغراضًا مميزة تحددها استمراريتهما وسلوك نطاق علامة التبويب.
localStorage يخزن أزواج المفتاح والقيمة بدون تاريخ انتهاء صلاحية. تبقى البيانات بعد إعادة تشغيل المتصفح، وإعادة تشغيل النظام، وفترات طويلة من عدم النشاط حتى يقوم المستخدم أو التطبيق بإزالتها صراحةً. يتم مشاركتها عبر جميع علامات التبويب والنوافذ التي تعمل تحت نفس المصدر (البروتوكول + النطاق + المنفذ). [1][5]
sessionStorage يخزن البيانات فقط طوال مدة جلسة الصفحة. عندما يغلق المستخدم علامة التبويب أو النافذة، تختفي البيانات. الأهم من ذلك، أن كل علامة تبويب تحتفظ بـ sessionStorage الخاص بها المعزول، وفتح نفس عنوان URL في علامة تبويب ثانية لا يشارك بيانات sessionStorage لعلامة التبويب الأولى. [1]
| الميزة | localStorage | sessionStorage |
|---|---|---|
| الاستمرارية | إلى أجل غير مسمى | مدة علامة التبويب/النافذة فقط |
| المشاركة عبر علامات التبويب | نعم (نفس المصدر) | لا (عزل لكل علامة تبويب) |
| البقاء بعد إعادة تحميل الصفحة | نعم | نعم |
| البقاء بعد إغلاق علامة التبويب | نعم | لا |
| سعة التخزين | ~5-10 ميجابايت لكل مصدر | ~5-10 ميجابايت لكل مصدر |
| إرسال الخادم | لا | لا |
| حماية HttpOnly | غير متوفرة | غير متوفرة |
تلتزم كلتا واجهتي برمجة التطبيقات بسياسة نفس المصدر، لذا لا يمكن لصفحة على https://example.com قراءة التخزين الذي تم تعيينه بواسطة https://otherdomain.com. [4]

هل localStorage يحمل مخاطر خصوصية مقارنة بـ sessionStorage؟
نعم، يحمل localStorage مخاطر خصوصية أعلى بكثير من sessionStorage، ويرجع ذلك أساسًا إلى استمراريته غير المحدودة وإمكانية الوصول عبر علامات التبويب.
يمكن أن تتراكم البيانات المكتوبة في localStorage على مدار شهور أو سنوات دون علم المستخدم. لقد استخدم المعلنون وبائعو التحليلات تاريخيًا localStorage كـ "ملف تعريف ارتباط فائق"، وهو معرف تتبع يبقى بعد حذف ملفات تعريف الارتباط لأن معظم المستخدمين لا يفكرون في مسح تخزين المتصفح يدويًا. على النقيض من ذلك، يدمر sessionStorage نفسه عند إغلاق علامة التبويب، مما يجعله ناقل تتبع أقل فائدة بكثير.
عوامل مخاطر الخصوصية الرئيسية الفريدة لـ localStorage:
- معرفات التتبع المستمرة: يمكن لمعرف فريد مخزن في localStorage تتبع المستخدم عبر زيارات متعددة دون أي ملف تعريف ارتباط من جانب الخادم.
- تسرب البيانات عبر علامات التبويب: يمكن لأي برنامج نصي يعمل في أي علامة تبويب من نفس المصدر قراءة جميع بيانات localStorage.
- بث حدث التخزين: تؤدي التغييرات في localStorage إلى تشغيل حدث
storageفي علامات التبويب المفتوحة الأخرى من نفس المصدر، مما يتيح مزامنة البيانات عبر علامات التبويب التي لا يمكن للمستخدمين ملاحظتها. [5] - لا يوجد انتهاء صلاحية تلقائي: على عكس ملفات تعريف الارتباط، التي تدعم سمات
Max-AgeوExpires، لا يحتوي localStorage على آلية TTL.
هل يمكن لمواقع الويب تتبع المستخدمين باستخدام localStorage و sessionStorage؟
يمكن لمواقع الويب استخدام localStorage للتتبع المستمر، وهي تفعل ذلك بالفعل. sessionStorage أقل فائدة للتتبع ولكنه لا يزال يشكل مخاطر مراقبة داخل الجلسة.
ينشئ سطر JavaScript واحد، localStorage.setItem('uid', 'abc123')، معرفًا دائمًا يبقى بعد مسح ملفات تعريف الارتباط. تم توثيق هذه التقنية، التي تسمى أحيانًا "evercookie" أو إعادة التوليد المستندة إلى التخزين، في أبحاث الخصوصية وهي السبب في أن المنظمين يعاملون localStorage بشكل متزايد بموجب نفس قواعد الموافقة مثل ملفات تعريف الارتباط.
يمكن لـ sessionStorage تتبع السلوك داخل جلسة واحدة (تدفق الصفحة، مدخلات النموذج، أنماط التنقل)، لكن هذه البيانات تختفي عند إغلاق علامة التبويب، مما يحد من فائدتها للتنميط طويل الأجل.
كم من الوقت تبقى البيانات في SessionStorage مقابل LocalStorage؟
تبقى بيانات localStorage حتى يتم حذفها صراحةً، إما عن طريق قيام المستخدم بمسح تخزين المتصفح، أو قيام موقع الويب باستدعاء localStorage.removeItem() أو localStorage.clear()، أو قيام المتصفح بفرض حصص التخزين. [2]
يتم حذف بيانات sessionStorage تلقائيًا عند إغلاق علامة التبويب أو النافذة التي أنشأتها. تبقى بعد إعادة تحميل الصفحة داخل نفس علامة التبويب ولكنها لا تنتقل إلى علامات تبويب جديدة، حتى لو قام المستخدم بتكرار علامة التبويب في بعض المتصفحات. [1]
الآثار العملية: إذا قام مطور بتخزين رمز جلسة في localStorage بدلاً من sessionStorage، فإن هذا الرمز يبقى على الجهاز بعد تسجيل خروج المستخدم، ما لم يقم التطبيق بإزالته صراحةً. هذا خطأ شائع وله عواقب وخيمة.
هل SessionStorage أكثر خصوصية من localStorage؟
بالنسبة لمعظم حالات استخدام الخصوصية، نعم، sessionStorage هو الخيار الأكثر احترامًا للخصوصية. يعني حذفه التلقائي عند إغلاق علامة التبويب أن البيانات لا تبقى، مما يقلل من التعرض من مشاركة الجهاز، أو الأجهزة المسروقة، أو التحليل الجنائي.
ومع ذلك، فإن sessionStorage ليس "خاصًا" بطبيعته. ضمن جلسة نشطة، يكون عرضة لهجمات XSS تمامًا مثل localStorage. يمكن لأي برنامج نصي محقون استدعاء sessionStorage.getItem() واستخراج البيانات في الوقت الفعلي. [3]
اختر sessionStorage إذا: كانت البيانات مطلوبة فقط للتفاعل الحالي للمستخدم (مثل حالة نموذج متعدد الخطوات، رموز التنقل لمرة واحدة).
اختر localStorage إذا: كانت البيانات تحتاج حقًا إلى الاستمرار عبر الجلسات (مثل تفضيلات واجهة المستخدم للمستخدم، الإعدادات غير الحساسة)، وتأكد من أنها لا تحتوي على أي شيء يمكن التعرف عليه شخصيًا.
ما هي البيانات الشخصية التي يجب ألا توضع أبدًا في localStorage؟
يجب عدم تخزين الفئات التالية من البيانات أبدًا في localStorage (ويجب التعامل معها بحذر شديد حتى في sessionStorage): [3]
- رموز المصادقة (JWTs، رموز OAuth، معرفات الجلسة)
- كلمات المرور أو تجزئات كلمات المرور
- معلومات بطاقة الائتمان أو الدفع
- أرقام الهوية الصادرة عن الحكومة أو أرقام الضمان الاجتماعي
- الأسماء الكاملة مدمجة مع عناوين البريد الإلكتروني أو أرقام الهواتف
- السجلات الطبية أو الصحية
- أي بيانات مصنفة على أنها "فئة خاصة" بموجب GDPR (البيانات البيومترية، البيانات الصحية، الآراء السياسية)
البيانات المخزنة في كل من localStorage و sessionStorage غير مشفرة افتراضيًا. يمكن لأي شخص لديه وصول مادي إلى الجهاز، أو أي برنامج نصي قادر على التنفيذ على الصفحة، قراءتها بنص عادي. [3]
هل يمكن للبرامج النصية التابعة لجهات خارجية الوصول إلى بيانات localStorage؟
يمكن للبرامج النصية التابعة لجهات خارجية الوصول إلى بيانات localStorage إذا تم تحميلها وتنفيذها ضمن نفس مصدر الصفحة المضيفة. هذا خطر حاسم وغالبًا ما يتم التقليل من شأنه.
عندما يقوم موقع ويب بتضمين برنامج نصي تحليلي أو إعلاني تابع لجهة خارجية عبر علامة <script>، فإن هذا البرنامج النصي يعمل في سياق مصدر الصفحة المضيفة. يمكنه القراءة والكتابة في localStorage الخاص بالموقع بحرية. لا تحمي سياسة نفس المصدر من البرامج النصية التي يتم تضمينها عن قصد أو عن غير قصد في الصفحة. [4]
ماذا يعني هذا عمليًا: إذا قام موقع بتخزين معرف مستخدم في localStorage وقام أيضًا بتحميل برنامج نصي إعلاني تابع لجهة خارجية، فيمكن لهذا البرنامج النصي الإعلاني قراءة المعرف وربطه ببيانات سلوكية عبر المواقع، دون علم المستخدم أو موافقته.
هذا أحد الأسباب التي تجعل منصات إدارة الموافقة مهمة. تتيح Biscotti CMP لمواقع الويب إدارة وتوثيق موافقة المستخدم على عمليات التخزين، بما في ذلك التتبع المستند إلى localStorage، مما يساعد المواقع على الوفاء بالتزاماتها بموجب GDPR والأطر المماثلة.
ما هي الآثار المترتبة على GDPR لاستخدام localStorage؟
بموجب GDPR، يتطلب أي تخزين للبيانات الشخصية أو معرفات التتبع، بغض النظر عن الآلية التقنية، أساسًا قانونيًا. بالنسبة للتتبع غير الأساسي عبر localStorage، يكون هذا الأساس دائمًا تقريبًا موافقة المستخدم الصريحة. [2]
أكد مجلس حماية البيانات الأوروبي أن localStorage المستخدم للتحليلات أو الإعلانات أو تحديد ملفات تعريف المستخدمين يقع تحت نفس متطلبات الموافقة مثل ملفات تعريف الارتباط. تواجه مواقع الويب التي تسقط معرفات التتبع في localStorage دون موافقة مسبقة نفس التعرض للتنفيذ مثل تلك التي تستخدم ملفات تعريف الارتباط غير الموافق عليها.
قائمة التحقق من الامتثال لـ localStorage بموجب GDPR:
- تدقيق جميع مفاتيح localStorage المكتوبة بواسطة البرامج النصية للطرف الأول والطرف الثالث.
- تصنيف كل مفتاح: هل هو ضروري تمامًا للخدمة، أم أنه يستخدم للتحليلات/الإعلانات؟
- بالنسبة للتخزين غير الأساسي، قم بحماية عملية الكتابة خلف موافقة المستخدم الموثقة.
- تزويد المستخدمين بآلية واضحة لسحب الموافقة وتشغيل حذف التخزين.
- توثيق المصلحة المشروعة لمتحكم البيانات أو سجل الموافقة.
يمكن لمنصة إدارة الموافقة المكونة بشكل صحيح مثل Biscotti CMP أتمتة الكثير من دورة حياة الموافقة هذه.
هل يمكن الوصول إلى localStorage عبر مواقع ويب مختلفة؟
لا. يقتصر localStorage بشكل صارم على المصدر (مجموعة البروتوكول + النطاق + المنفذ) الذي أنشأه. لا يمكن لبرنامج نصي على https://siteA.com قراءة بيانات localStorage التي تم تعيينها بواسطة https://siteB.com. [4]
ومع ذلك، فإن هذه الحماية لها حدود. إذا قام مزود إعلانات أو تحليلات واحد بتحميل برامجه النصية على كل من siteA.com و siteB.com، فإن كل مثيل يكتب إلى localStorage الخاص بالموقع المعني بشكل مستقل. ثم يقوم المزود بربط البيانات من جانب الخادم، مما يحقق بشكل فعال التتبع عبر المواقع دون انتهاك سياسة نفس المصدر.
كيف يؤثر وضع التصفح المتخفي والتصفح الخاص على localStorage؟
ينشئ التصفح الخاص/المتخفي قسم تخزين مؤقت يتم حذفه عند إغلاق النافذة الخاصة. لا تستمر بيانات localStorage المكتوبة أثناء جلسة التصفح المتخفي في ملف تعريف المتصفح الرئيسي ولا يمكن الوصول إليها من نوافذ التصفح العادية.
يتصرف sessionStorage بنفس الطريقة في وضع التصفح المتخفي كما في التصفح العادي: يتم حذفه عند إغلاق علامة التبويب.
تحذيرات مهمة:
- ضمن جلسة تصفح متخفي نشطة، لا يزال localStorage قابلاً للقراءة بواسطة جميع البرامج النصية التي تعمل في سياق نفس المصدر لتلك الجلسة.
- لا يمنع وضع التصفح المتخفي استخراج البيانات في الوقت الفعلي المستند إلى XSS.
- تقوم بعض المتصفحات بمزامنة localStorage عبر الأجهزة إذا كان المستخدم مسجلاً الدخول إلى مزامنة المتصفح، وهو سلوك يمكن أن ينقل البيانات "المحلية" إلى البنية التحتية السحابية.
كيف أقوم بمسح SessionStorage و localStorage من أجل الخصوصية؟
يعد مسح تخزين المتصفح أمرًا مباشرًا ولكنه يتطلب إجراءً متعمدًا نظرًا لأن المتصفحات لا تفعل ذلك تلقائيًا لـ localStorage.
المسح على مستوى المتصفح:
- Chrome: الإعدادات > الخصوصية والأمان > مسح بيانات التصفح > الصور والملفات المخزنة مؤقتًا + بيانات الموقع
- Firefox: الإعدادات > الخصوصية والأمان > ملفات تعريف الارتباط وبيانات الموقع > مسح البيانات
- Safari: الإعدادات > الخصوصية > إدارة بيانات موقع الويب
المسح البرمجي (للمطورين):
localStorage.clear()يزيل جميع المفاتيح للمصدر.sessionStorage.clear()يزيل جميع المفاتيح لجلسة علامة التبويب الحالية.localStorage.removeItem('keyName')يزيل مفتاحًا محددًا.
للمستخدمين النهائيين المهتمين بالتتبع: يؤدي مسح "بيانات الموقع" أو "ملفات تعريف الارتباط والتخزين" في إعدادات المتصفح إلى إزالة محتويات localStorage و sessionStorage لجميع المواقع. يمكن لملحقات المتصفح المصممة للخصوصية أتمتة ذلك على أساس كل موقع أو كل جلسة.
ما هي الأخطاء الشائعة في الخصوصية التي يرتكبها المطورون باستخدام تخزين الويب؟
تشارك الأخطاء الأكثر أهمية جذرًا مشتركًا: التعامل مع التخزين من جانب العميل كما لو كان قاعدة بيانات آمنة من جانب الخادم.
- تخزين JWTs في localStorage: رموز المصادقة المخزنة في localStorage يمكن الوصول إليها بواسطة أي برنامج نصي على الصفحة. تعرض ثغرة XSS واحدة رمز كل مستخدم. استخدم ملفات تعريف الارتباط HttpOnly لرموز المصادقة بدلاً من ذلك.
- لا يوجد منطق انتهاء صلاحية: localStorage ليس له TTL. المطورون الذين يخزنون البيانات دون بناء منطق انتهاء الصلاحية يتركون بيانات قديمة وحساسة على الأجهزة إلى أجل غير مسمى.
- افتراض أن نفس المصدر يعني الأمان: تمنع سياسة نفس المصدر المواقع الخارجية، وليس البرامج النصية الضارة المحملة من داخل نفس الموقع (XSS، مكتبات الطرف الثالث المخترقة).
- تجاهل وصول البرامج النصية التابعة لجهات خارجية: تضمين برامج نصية للتحليلات أو الإعلانات دون تدقيق ما تقرأه من localStorage.
- لا يوجد بوابة موافقة لتخزين التتبع: كتابة معرفات التحليلات إلى localStorage قبل الحصول على موافقة المستخدم، وهو انتهاك مباشر لـ GDPR. [2]
- تخزين PII زائدة عن الحاجة: تخزين استجابات API التي تتضمن ملفات تعريف مستخدم كاملة في localStorage "لتحسين الأداء" دون النظر في سطح التعرض.
هل IndexedDB أكثر خصوصية من localStorage؟
IndexedDB ليس أكثر خصوصية بطبيعته من localStorage. كلاهما يخضع لسياسة نفس المصدر، وكلاهما يمكن الوصول إليه بواسطة JavaScript الذي يعمل على الصفحة، وكلاهما عرضة لهجمات XSS.
يوفر IndexedDB سعة تخزين أكبر ويدعم البيانات المنظمة والكائنات الثنائية الكبيرة، مما يجعله مناسبًا للتطبيقات المعقدة غير المتصلة بالإنترنت. ولكن من منظور الخصوصية والأمان، فإن المخاطر قابلة للمقارنة. البيانات المخزنة في IndexedDB غير مشفرة افتراضيًا أيضًا، وتستمر إلى أجل غير مسمى ما لم يتم حذفها صراحةً.
يجب أن يكون الاختيار بين IndexedDB و localStorage مدفوعًا بمتطلبات تعقيد البيانات وحجمها، وليس افتراضات الخصوصية. لا يوجد أي منهما مناسب للبيانات الشخصية الحساسة بدون تشفير على مستوى التطبيق وضوابط وصول صارمة.
الخلاصة
إن النقاش حول SessionStorage مقابل LocalStorage: الآثار المترتبة على الخصوصية لواجهات برمجة تطبيقات تخزين الويب ليس مجرد ملاحظة فنية، بل له عواقب مباشرة على خصوصية المستخدم، والامتثال التنظيمي، وأمان التطبيقات. إن استمرارية localStorage غير المحدودة وإمكانية الوصول عبر علامات التبويب تجعله آلية تخزين عالية المخاطر عند إساءة استخدامه، بينما يجعل الحذف التلقائي لـ sessionStorage عند إغلاق علامة التبويب الخيار الأكثر دفاعًا للحالة المؤقتة.
الخطوات التالية القابلة للتنفيذ للمطورين ومالكي مواقع الويب في عام 2026:
- تدقيق جميع استخدامات localStorage و sessionStorage عبر البرامج النصية للطرف الأول والطرف الثالث باستخدام أدوات مطوري المتصفح (علامة التبويب "التطبيق").
- إزالة أي رموز مصادقة، أو معلومات شخصية (PII)، أو معرفات حساسة من التخزين من جانب العميل على الفور.
- استبدال تخزين رموز المصادقة المستند إلى localStorage بملفات تعريف الارتباط HttpOnly و Secure التي تتم إدارتها من جانب الخادم.
- تنفيذ سير عمل إدارة الموافقة، باستخدام منصة مثل Biscotti CMP، لحماية عمليات الكتابة غير الأساسية لـ localStorage خلف موافقة المستخدم الموثقة.
- بناء منطق انتهاء الصلاحية في أي بيانات localStorage يجب أن تستمر، وفرض التنظيف عند تسجيل الخروج.
- إجراء تدقيق للبرامج النصية التابعة لجهات خارجية لفهم ما يمكن للتعليمات البرمجية الخارجية قراءته من تخزين المصدر الخاص بك.
- تدريب فرق التطوير على منع XSS باعتباره ناقل الهجوم الأساسي ضد كلا نوعي التخزين.
واجهات برمجة تطبيقات تخزين الويب هي أدوات قوية. عند استخدامها بدون انضباط الخصوصية، تصبح ناقلات للمسؤولية. عند استخدامها مع تحديد نطاق متعمد، وإدارة الموافقة، ونظافة الأمان، فإنها تخدم الغرض المقصود منها دون المساس بالمستخدمين الذين يثقون في تطبيقك.
الأسئلة الشائعة
س: ما هو الفرق الرئيسي بين sessionStorage و localStorage؟ يستمر localStorage في تخزين البيانات إلى أجل غير مسمى عبر الجلسات ويتم مشاركته عبر جميع علامات التبويب من نفس المصدر. يخزن sessionStorage البيانات فقط طوال مدة علامة التبويب الحالية ويتم حذفها تلقائيًا عند إغلاق علامة التبويب.
س: هل يمكن استخدام localStorage لتتبع المستخدمين بدون ملفات تعريف الارتباط؟ نعم. يبقى معرف فريد مخزن في localStorage بعد حذف ملفات تعريف الارتباط ويمكن استخدامه لتتبع المستخدمين عبر زيارات متعددة لنفس الموقع، ويعمل كآلية تتبع مستمرة.
س: هل sessionStorage آمن لتخزين كلمات المرور؟ لا. sessionStorage غير مشفر ويمكن الوصول إليه بواسطة أي JavaScript يعمل على الصفحة، بما في ذلك البرامج النصية الضارة المحقونة. يجب عدم تخزين كلمات المرور أبدًا في أي آلية تخزين من جانب العميل.
س: هل ينطبق GDPR على localStorage؟ نعم. بموجب GDPR، يعد تخزين معرفات التتبع أو البيانات الشخصية في localStorage بدون أساس قانوني، عادةً موافقة المستخدم الصريحة لأغراض غير أساسية، انتهاكًا للامتثال يعادل استخدام ملفات تعريف الارتباط غير الموافق عليها.
س: هل يمكن للبرامج النصية التابعة لجهات خارجية قراءة بيانات localStorage الخاصة بي؟
نعم، إذا تم تحميل هذه البرامج النصية وتنفيذها ضمن نفس المصدر. تعمل برامج التحليلات أو الإعلانات التابعة لجهات خارجية المضمنة عبر علامات <script> في سياق مصدر الصفحة المضيفة ويمكنها قراءة جميع بيانات localStorage لهذا المصدر.
س: هل يؤدي مسح ملفات تعريف الارتباط أيضًا إلى مسح localStorage؟ ليس دائمًا. في معظم المتصفحات، لا يؤدي مسح "ملفات تعريف الارتباط" وحدها إلى مسح localStorage. يجب على المستخدمين مسح "بيانات الموقع" أو "ملفات تعريف الارتباط وبيانات الموقع الأخرى" خصيصًا لإزالة محتويات localStorage.
س: هل وضع التصفح المتخفي آمن من تتبع localStorage؟ يمنع وضع التصفح المتخفي بيانات localStorage من الاستمرار بعد إغلاق النافذة الخاصة، ولكن ضمن جلسة تصفح متخفي نشطة، لا يزال localStorage قابلاً للقراءة بواسطة جميع البرامج النصية على الصفحة.
س: ما الذي يجب أن أستخدمه بدلاً من localStorage لرموز المصادقة؟ استخدم ملفات تعريف الارتباط HttpOnly و Secure و SameSite التي تتم إدارتها من جانب الخادم. هذه الملفات غير قابلة للوصول إلى JavaScript، مما يزيل خطر سرقة الرمز المستند إلى XSS الذي يحمله localStorage.
س: هل IndexedDB أكثر أمانًا من localStorage؟ لا. يخضع IndexedDB لنفس نقاط ضعف XSS وسياسة نفس المصدر مثل localStorage. يوفر سعة أكبر ودعمًا لهيكل البيانات ولكنه لا يوفر أي ضمانات إضافية للخصوصية أو الأمان.
س: كم من البيانات يمكن أن يحتفظ بها localStorage و sessionStorage؟ تخصص معظم المتصفحات الحديثة ما يقرب من 5 إلى 10 ميجابايت من التخزين لكل مصدر لكل نوع تخزين، وهو أكثر بكثير من حد 4 كيلوبايت النموذجي لملفات تعريف الارتباط. [2]
المراجع
[1] Sessionstorage - https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage?utm_source=openai
[2] What Is Localstorage Sessionstorage - https://inspectwp.com/en/knowledge-base/what-is-localstorage-sessionstorage?utm_source=openai
[3] Html5 Web Storage Security Risks Safeguarding Localstorage And Sessionstorage - https://www.dopethemes.com/html5-web-storage-security-risks-safeguarding-localstorage-and-sessionstorage/?utm_source=openai
[4] Localstorage - https://javascript.info/localstorage?utm_source=openai
[5] Localstorage Sessionstorage - https://www.w3docs.com/learn-javascript/localstorage-sessionstorage?utm_source=openai
[6] Cookies Vs Localstorage Vs Sessionstorage What Each One Exactly Means - https://www.interserver.net/tips/kb/cookies-vs-localstorage-vs-sessionstorage-what-each-one-exactly-means/?utm_source=openai