حول تخزين رموز JWT في المتصفحات


ظهر معيار JWT المفتوح رسميًا في عام 2015 ( rfc7519 ) واعدًا بميزات مثيرة للاهتمام وآفاق واسعة. يعد التخزين الصحيح لرمز الوصول أمرًا حيويًا لبناء نظام المصادقة والمصادقة على الويب الحديث ، حيث أصبحت المواقع التي تم إنشاؤها باستخدام تقنية SPA أكثر شيوعًا.

يؤدي التخزين غير الصحيح للرموز المميزة إلى سرقتها وإعادة استخدامها من قبل المهاجمين.

فأين تخزين؟


فكر في الخيارات الرئيسية لتخزين رمز JWT Access في متصفح:

  1. التخزين المحلي / تخزين الجلسة - الطريقة ليست آمنة وهي عرضة لهجمات مثل XSS ، خاصة إذا قمت بتوصيل برامج نصية من شبكات CDN تابعة لجهات خارجية (إضافة سمة التكامل لا يمكن أن تضمن أمانًا بنسبة 100٪) ، أو لست متأكدًا مما إذا كانت البرامج النصية التي تتصل بها لا تملك القدرة على "دمج" البيانات من مرافق التخزين على الجانب. علاوة على ذلك ، إذا كان التخزين المحلي متاحًا بين علامات التبويب ، فإن تخزين الجلسة متاح في علامة تبويب واحدة فقط وفتح موقع في علامة تبويب جديدة سيؤدي فقط إلى جولة جديدة من رمز / إذن الوصول.
  2. , , fetch . – .
  3. Cookies. «» cookie sessions. Access cookie CSRF. XSS . CSRF Cookie SameSite Strict– , , credentials, CSRF .
    – Access JS httpOnly, Secure .

    نقطة مهمة هي تعيين ملف تعريف ارتباط فقط لواجهة المجال / المسار حتى لا تحتوي الطلبات على الإحصائيات العامة على حمل في الرأس.

ما هي النتيجة؟


تعد ملفات تعريف الارتباط ، عند استخدامها بشكل صحيح ، هي الحل المناسب والأكثر أمانًا لتخزين رمز JWT Access في الوقت الحالي ويجب أن تتبع القواعد التالية:

  1. يتم تثبيته لواجهة برمجة التطبيقات للنطاق / المسار لتجنب الحمل الزائد عند طلب الملفات الثابتة (الصور العامة / الأنماط / ملفات js).
  2. الحصول على علامة آمنة (للنقل فقط عبر https).
  3. الحصول على علامة httpOnly (لعدم القدرة على الوصول من JavaScript).
  4. يجب أن تكون سمة SameSite صارمة للحماية من هجمات CSRF ، وحظر نقل ملفات تعريف الارتباط إذا لم يكن الانتقال إلى API الخاص بك من النطاق المعين في ملف تعريف الارتباط.

على جانب الخادم ، يجب أيضًا تكوينه:

  1. سياسة أمان المحتوى - تقييد المجالات الموثوقة لمنع هجمات XSS المحتملة
  2. رأس X-Frame-Options للحماية من هجمات النقر.
  3. X-XSS-Protection - فرض آلية الحماية المضمنة للمتصفح من هجمات XSS.
  4. X-Content-Type-Options - للحماية من استبدال أنواع MIME.

يجب أن يساعد الامتثال لهذه التدابير ، إلى جانب التناوب المتكرر لرموز الوصول / التحديث ، على ضمان مستوى عالٍ من الأمان على الموقع.

محددات


على الرغم من حقيقة أن سمة SameSite مدعومة في العديد من المتصفحات الشائعة ، فهناك أيضًا متصفحات لا تدعمها أو تدعمها جزئيًا (مرحبًا IE و Safari لنظام التشغيل Mac). في هذه الحالات ، تحتاج إلى الرجوع إلى رموز CSRF. في هذه الحالة ، إلى جانب الطلبات إلى واجهة برمجة التطبيقات ، يجب أيضًا إرسال رمز CSRF المميز. يجب إنشاء الرمز المميز لـ CSRF الصحيح بواسطة الخادم مع مراعاة بصمة المستخدم لتقليل احتمالية استبداله.

All Articles