احذر من الترميز المزدوج لعنوان URL لحمولة SSO

لقد واجهنا مؤخرًا عددًا كبيرًا من المشكلات في تنفيذ نظام الدخول الموحد (SSO) لدينا، وبعد جهد كبير في استكشاف الأخطاء وتصحيحها، تمكنا من تحديد السبب.

شملت بعض مشكلاتنا ما يلي:

  • عدم قدرة المستخدمين الجدد على تسجيل الدخول إلى المنتديات.
  • إضافة الرقم 7 إلى نهاية اسم المستخدم الخاص بالمستخدمين الحاليين عند تسجيل دخولهم لأول مرة.
  • رفض sso_sync لتغييرات اسم المستخدم.

اتضح أن السبب وراء كل ذلك هو التشفير المزدوج لـ URL لحمولة SSO الخاصة بنا. كنا نقوم بتشفيرها، ثم وضعها في الرابط مع التوقيع، ثم قمنا بتشفير ذلك مرة أخرى. ونظرًا لأن السلاسل المشفرة بـ base64 يمكن أن تحتوي على =, فقد تم تشفيرها مرتين لتصبح %253D بدلاً من %3D كما ينبغي. ليس لدي أي فكرة عن سبب حدوث ذلك في Discourse في بعض الأحيان فقط، ولكن آمل أن تكون هذه المعلومة مفيدة لأي شخص آخر يواجه هذه المشكلة.

4 إعجابات