سؤال

أريد حقا أن أعرف استخدام مملكة. http://en.wikipedia.org/wiki/Basic_access_authentication قال

تحتفظ المتصفحات الحالية بمعلومات المصادقة حتى يتم إغلاق علامة التبويب أو المتصفح أو يقوم المستخدم بمسح السجل. [1] لا يوفر HTTP طريقة لخادم لتوجيه العملاء لتجاهل بيانات الاعتماد هذه المخزنة مؤقتًا.هذا يعني أنه لا توجد طريقة فعالة لخادم "تسجيل الخروج" للمستخدم دون إغلاق المتصفح أو استخدام الجلسات في عنوان URL.

في الترميز الخاص بي

res.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\"");

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

سؤالي هو هل هناك طريقة لمسح بيانات الاعتماد هذه في الخادم باستخدام servlet؟أي مساعدة يحظى بتقدير كبير!!!

المرجع:ما هي الاستخدامات الدقيقة لمصطلح REALM في مجال الأمن؟

هل كانت مفيدة؟

المحلول

لن يتمتع الخادم أبدًا بهذا المستوى من التحكم في المتصفحات.الطريقة الآمنة الوحيدة للتعامل مع تسرب تفاصيل الحساب هي إبطال الحساب أو قفله على الفور وإنهاء جميع جلسات المستخدم المرتبطة به.خادم الويب قادر على إنجاز جميع هذه العمليات.

من المواصفات:

   The realm attribute (case-insensitive) is required for all
   authentication schemes which issue a challenge. The realm value
   (case-sensitive), in combination with the canonical root URL of the
   server being accessed, defines the protection space

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

نصائح أخرى

ربما تريد إلقاء نظرة على هذه الإجابة: كيفية إجبار Jetty على طلب بيانات الاعتماد باستخدام مصادقة BASIC بعد إبطال الجلسة؟

المصادقة الأساسية تبدو عديمة الفائدة بالنسبة لي.

تريد التبديل إلى مصادقة النموذج إذا استطعت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top