واحد. نظرة عامة على الشهادة الأساسية
أثناء عملية اتصال بروتوكول HTTP ، يحدد بروتوكول HTTP عملية المصادقة الأساسية للسماح لخادم HTTP بتنفيذ بطاقات معرف المستخدم على متصفح الويب. عندما يقدم العميل طلب بيانات إلى خادم HTTP ، إذا لم يتم مصادقة العميل ، فسيقوم خادم HTTP بالتحقق من اسم مستخدم العميل وكلمة المرور من خلال عملية المصادقة الأساسية لتحديد ما إذا كان المستخدم قانونيًا. بعد تلقي طلب مصادقة هوية خادم HTTP ، سيطالب العميل المستخدم بإدخال اسم المستخدم وكلمة المرور ، ثم تشفير اسم المستخدم وكلمة المرور باستخدام BASE64. سيتم إرفاق نص المشفر المشفر بمعلومات الطلب. على سبيل المثال ، عندما يكون اسم المستخدم Anjuta وكلمة المرور هي: 123456 ، يقوم العميل بدمج اسم المستخدم وكلمة المرور مع ":" ، وترميز السلسلة المدمجة مع BASE64 كنص مشفرة ، ويؤدي إلى إلحاق النص المشهد على رأس الطلب في كل مرة يتم فيها طلب البيانات. بعد كل مرة يستقبل فيها خادم HTTP حزمة الطلب ، يحصل على معلومات المستخدم المرفقة بالعميل (اسم المستخدم وكلمة المرور المشفرة BASE64) وفقًا للبروتوكول ، يقوم بفك حزمة الطلب ، ويتحقق من اسم المستخدم وكلمة المرور. إذا كان اسم المستخدم وكلمة المرور صحيحين ، فإنه يعيد البيانات المطلوبة من قبل العميل وفقًا لطلب العميل ؛ خلاف ذلك ، فإنه يعيد رمز الخطأ أو يعيد إعادة تكوين العميل لتوفير اسم المستخدم وكلمة المرور.
اثنين. عملية التصديق الأساسي
1. يطلب العميل بيانات من الخادم ، وقد يكون المحتوى المطلوب عبارة عن صفحة ويب أو نوع آخر من MIME. في هذا الوقت ، على افتراض أنه لم يتم التحقق من العميل بعد ، يقدم العميل الطلب التالي للخادم:
get /index.html http /1.0
المضيف: www.google.com
2. يرسل الخادم رمز طلب التحقق 401 إلى العميل ، والبيانات التي يتم إرجاعها بواسطة الخادم تقريبًا كما يلي:
HTTP/1.0 401 غير مصرح به
الخادم: Sokevo/1.0
www-authenticate: basic Realm = "Google.com"
نوع المحتوى: النص/html
طول المحتوى: xxx
3. عندما يتلقى العميل المتوافق مع المواصفات HTTP1.0 أو 1.1 (مثل IE ، Firefox) قيمة إرجاع 401 ، ستظهر نافذة تسجيل الدخول تلقائيًا ، مما يتطلب من المستخدم إدخال اسم المستخدم وكلمة المرور.
4. بعد إدخال المستخدم اسم المستخدم وكلمة المرور ، يتم تشفير اسم المستخدم وكلمة المرور في تشفير BASE64 ، ويتم وضع النص المشفر في معلومات الطلب السابقة. تصبح معلومات الطلب الأولى التي يرسلها العميل المحتوى التالي:
get /index.html http /1.0
المضيف: www.google.com
تأليف: أساسي xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ملاحظة: XXXX .... يمثل اسم المستخدم وكلمة المرور المشفرة.
5. بعد تلقي معلومات الطلب أعلاه ، يقوم الخادم باسترداد معلومات المستخدم وفك تشفيره بعد حقل التفويض ، ويقارن ويؤكد اسم المستخدم وكلمة المرور التي تم فك تشفيرها مع قاعدة بيانات المستخدم. إذا كان اسم المستخدم وكلمة المرور صحيحة ، فسيقوم الخادم بإرسال المورد المطلوب إلى العميل وفقًا للطلب:
ثلاثة. عيوب الشهادة الأساسية
الهدف من مصادقة HTTP الأساسية هو توفير وظائف مصادقة مستخدم بسيطة. عملية المصادقة بسيطة وواضحة ، وهي مناسبة للأنظمة أو الأجهزة ذات متطلبات الأمان المنخفضة. على سبيل المثال ، يتم تبني مصادقة صفحة التكوين الخاصة بجهاز التوجيه المستخدمة من قبل الجميع تقريبًا. العيب هو أنه لا يحتوي على استراتيجية مصادقة مرنة وموثوقة ، مثل عدم القدرة على توفير وظيفة المصادقة للمجال (المجال أو المجال). بالإضافة إلى ذلك ، فإن قوة تشفير BASE64 منخفضة للغاية ، مما يمكن أن يمنع فقط بحث SOHU من البحث عنه. بالطبع ، يمكن أيضًا دمج نظام المصادقة الأساسي HTTP مع SSL أو Kerberos لتحقيق نظام مصادقة بأداء أمان عالي (نسبيًا)
أربعة. رمز تنفيذ Java المعتمد الأساسي
جلسة httpsession = request.getSession () ؛ string user = (string) session.getAttribute ("user") ؛ تمريرة سلسلة if (user == null) {try {response.setcharacterencoding ("gbk") ؛ printWriter ut = response.getWriter () ؛ ترخيص السلسلة = request.getheader ("إذن") ؛ if (uputization == null || uputization.equals ("")) {response.setStatus (401) ؛ استجابة. out.print ("آسف لعدم وجود إذن !!") ؛ يعود؛ } String userandPass = new String (new BASE64DECODER (). decodeBuffer (Authorization.split ("" "")) ؛ if (userandPass.split (":") out.print (آسف لعدم الإذن !! Dispather. ex.printstacktrace () ؛ما سبق هو المناقشة الموجزة حول المبادئ وأساليب التنفيذ الخاصة بـ HTTP باستخدام المصادقة الأساسية المقدمة إليك. آمل أن يتمكن الجميع من دعم wulin.com أكثر ~