النهج الآمن هو التعامل مع المقارنة طبقةً بعد طبقة بين الطلبات المباشرة والطلبات عبر الوكيل، وملفات تعريف الارتباط في الاستجابات، وتخزين المتصفح، وحالة الجلسة في الواجهة الخلفية، باعتبارها سلسلة من نقاط تحقق قابلة للملاحظة، لا أمرًا واحدًا.
في تطبيق ويب مستضاف ذاتيًا خلف وكيل عكسي، يتمثل الخطر العملي في تسجيل خروج المستخدمين، أو احتجازهم في حلقة إعادة توجيه، أو عدم قدرتهم على إنشاء جلسة بعد تغييرات الوكيل أو ملفات تعريف الارتباط. سجّل الهوية الحالية ونقطة الاسترداد، وابدأ بأقل عامل تمييزي تدخّلًا، وفسّر نتائج النجاح والفشل قبل تغيير متغير آخر، وتوقف عندما يصبح التخزين غير مستقر أو عندما تكون النسخة الوحيدة القابلة للاسترداد معرضة للكشف. لا ينتهي سير العمل أدناه إلا بعد نجاح الحمل الأصلي أو وصول الأدلة إلى حد التصعيد.
أعد إنتاج مسار جلسة واحدًا وحافظ على الأدلة
اختر مستخدمًا واحدًا وملفًا شخصيًا واحدًا للمتصفح واسم مضيف واحدًا ومسار تسجيل دخول واحدًا. سجّل أول طلب فاشل، وتسلسل رموز الحالة، ومواقع إعادة التوجيه، ورؤوس الاستجابة Set-Cookie مع حجب القيم، وملفات تعريف الارتباط في الطلب، وسجلات الوكيل، وسجلات التطبيق، وتغيير الإعدادات الدقيق الذي سبق الفشل.
لا تبدأ بمسح كل ملفات تعريف الارتباط أو بتدوير سر التطبيق. استخدم ملفًا شخصيًا خاصًا في المتصفح كعنصر تحكم نظيف، مع الحفاظ على الملف الشخصي الذي يفشل للمقارنة. تأكد مما إذا كان الوصول المباشر إلى الواجهة الخلفية يعمل؛ فهذا يفصل مصادقة التطبيق عن سلوك عناوين URL وملفات تعريف الارتباط الناتج عن الوكيل.
توقف إذا كان التطبيق يكشف الرموز في السجلات، أو كان الوكيل يقبل رؤوس إعادة التوجيه المزورة من عملاء غير موثوقين، أو كان تسجيل الدخول يتجاوز TLS. احمِ بيانات الاعتماد وصحّح حدود الأمان قبل مواصلة استكشاف الأخطاء الوظيفية.
تحقق من المخطط والمضيف وثقة إعادة التوجيه
قارن عنوان URL الخارجي بما يعتقده التطبيق: المخطط، والمضيف، والمنفذ، والمسار الأساسي، وعنوان IP للعميل. افحص Host وX-Forwarded-Proto أو رؤوس إعادة التوجيه المعيارية، وقائمة الوكلاء الموثوقين في التطبيق. قد يرفض backend الذي يعتقد أن طلبات HTTPS هي HTTP ملفات تعريف الارتباط الآمنة، أو ينشئ إعادة توجيه لا نهائية إلى HTTPS.
استخدم وكيلًا موثوقًا واحدًا لتعيين رؤوس إعادة التوجيه أو استبدالها، واضبط التطبيق بحيث يثق في تلك القفزة فقط. لا تُلحق القيم التي يرسلها العميل دون تحقق. اختبر تسجيل الدخول وإعادة توجيه مطلقة واحدة بعد كل تغيير، بدل تعديل رؤوس الوكيل وعنوان URL الأساسي للتطبيق معًا.
يستخدم دليل ZimaSpace على تشخيص تسجيل الدخول المباشر مقابل تسجيل الدخول عبر الوكيل المقارنة نفسها بين الوصول المباشر والوصول عبر الوكيل بعد إعادة تشغيل الوكيل. ورغم أن مثال Immich أضيق نطاقًا، فإن مسار الأدلة قابل للتطبيق: أثبت أن جلسة الواجهة الخلفية تعمل، ثم افحص رؤوس إعادة التوجيه والتوجيه وحالة المتصفح.
افحص نطاق ملفات تعريف الارتباط وقرارات المتصفح
تحقق من اسم ملف تعريف الارتباط، وDomain، وPath، وSecure، وHttpOnly، وSameSite، وتاريخ الانتهاء، وما إذا كانت هناك ملفات تعريف ارتباط مكررة بالاسم نفسه في مسارات أو نطاقات مختلفة. تعرض أدوات مطوري المتصفح ما إذا كان ملف تعريف الارتباط قد حُفظ أو رُفض أو حُذف من الطلب التالي؛ ولا تستطيع سجلات الخادم وحدها إظهار ذلك القرار.
يوضح سلوك ملفات تعريف الارتباط SameSite لدى OWASP كيفية تحكم قيم SameSite في إرسال ملفات تعريف الارتباط عبر المواقع. إذا كانت المصادقة تعبر المواقع أو تستخدم تدفقًا مضمنًا، فإن SameSite=None يتطلب أيضًا Secure؛ أما في تطبيق بسيط من الموقع نفسه، فإن توسيع نطاق ملف تعريف الارتباط دون حاجة يضعف التصميم.
احذف ملف تعريف الارتباط المتأثر فقط في ملف التحكم الشخصي بعد تسجيله، ثم كرر تسجيل الدخول. إذا عمل ملف تعريف ارتباط جديد بينما فشل الملف الشخصي المحفوظ، فقارن النطاق وتاريخ الانتهاء؛ وإذا فشل كلاهما، فارجع إلى رؤوس الاستجابة أو تخزين جلسة الواجهة الخلفية بدلًا من مسح الحالة مرارًا.
تحقق من حالة الجلسة المشتركة وتحقق من الإصلاح
بالنسبة إلى التطبيقات متعددة الحاويات أو المكررة، تأكد من أن كل مثيل يستخدم سر توقيع الجلسة نفسه، ومصدر الوقت نفسه، وواجهة خلفية مشتركة للجلسات عند الحاجة. قد يبدو الوكيل الذي يتناوب بين المثيلات وكأنه تسجيل خروج عشوائي عندما يعجز أحد المثيلات عن التحقق من ملف تعريف ارتباط أنشأه مثيل آخر.
تتناول مناقشة PortSwigger حول حد SameSite الأمني الموضوع من منظور أمني، لكنها توضح أن SameSite يمثل حدًا يفرضه المتصفح، وليس مفتاحًا عامًا لإصلاح تسجيل الدخول. حافظ على حماية CSRF مع مواءمة أصل التطبيق وتدفق إعادة التوجيه الفعليين.
تحقق من تسجيل الدخول، وتسجيل الخروج، وانتهاء الصلاحية عند الخمول، وإعادة تشغيل المتصفح، وتغيير كلمة المرور، والوصول عبر أسماء المضيفين الداخلية والبعيدة المقصودة. أغلق المشكلة فقط عندما تفشل ملفات تعريف الارتباط القديمة بأمان، وتستمر الجلسات الجديدة عبر التوجيه المعتاد، ولا يكون أي توسيع لمرور الرؤوس أو لسمات ملفات تعريف الارتباط أكبر من الحاجة الموثقة.
الدعم والنصائح
المزيد للقراءة

قائمة التحقق من ترحيل NFS لمجموعات البيانات المُعاد تسميتها ومقابض الملفات المستقرة
افترض أن معرّفات الملفات قد تتغير عند تغيّر هوية وحدة التخزين. أوقف العملاء مؤقتًا، وانقل التصدير عمدًا، وأعد التحميل، وتحقّق من الملفات المفتوحة والجديدة.

دليل استكشاف أخطاء عميل SMB وإصلاحها لنظام Windows وmacOS وLinux
استخدم الخادم والحساب والمشاركة وعملية الملفات نفسها على كل عميل، حتى لا تختلط أعطال الاكتشاف وبيانات الاعتماد والسياسات والتخزين معًا.

قائمة التحقق لتدوير الأسرار على الخادم المنزلي للتطبيقات وقواعد البيانات والنسخ الاحتياطية
تعامل مع تدوير المفاتيح باعتباره ترحيلًا للتبعيات: احصر كل مستهلك، واحتفظ بتداخل بيانات الاعتماد حيثما أمكن، وتحقق من القيمة الجديدة، ثم ألغِ القديمة واختبر...

