سؤال هل يمكنك تمرير المستخدم / التمرير لمصادقة HTTP الأساسية في معلمات عنوان URL؟


أعتقد أن هذا غير ممكن ، لكن أحد الأشخاص الذين أعرفهم أصر على أنه يعمل. لا أعرف حتى المعلمات التي يجب تجربتها ، ولم أجد هذا موثقًا في أي مكان.

حاولت http://myserver.com/~user=username&password=mypassword لكنها لا تعمل.

هل يمكنك تأكيد أنه ليس من الممكن في الواقع تمرير المستخدم / المرور عبر معلمات HTTP (GET أو POST)؟


124
2018-03-21 11:16


الأصل


المستخدم: pass@example.com - Smudge
sam - ماذا؟ كيف يبدو شكل عنوان URL الكامل؟ - ripper234
كل ما في المواصفات ietf.org/rfc/rfc1738.txt (3.1) - Smudge
sam - عذرًا ، لقد فشلت في تحليل تعليقك لسبب ما. - ripper234


الأجوبة:


في الواقع ، لا يمكن تمرير اسم المستخدم وكلمة المرور عبر معلمات طلب البحث في مصادقة HTTP القياسية. بدلاً من ذلك ، تستخدم تنسيق URL خاص ، مثل هذا: http://username:password@example.com/ - يرسل هذا بيانات الاعتماد في عنوان "تفويض" HTTP القياسي.

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


167
2018-03-21 11:38



شكرًا ، هذا هو ما كنت أبحث عنه ... ليس من الأهمية بمكان أن تكون معلمات GET ، فقط يمكنني وضعه في عنوان URL. - ripper234
لمعلوماتك ، و http://username:password@example.com التنسيق لم يعد مدعومًا من قبل أي أو كروملن يفاجأ إذا اتبع الآخرون ما لم يفعلوا. - T.J. Crowder
فعلا يعمل بشكل جيد في كروم. فقط IE يجري شقي مدلل. - Damien Overeem ツ
DamienOvereem ما إصدار Chrome الذي تشغله؟ أنا على نظام التشغيل Mac OS X 37 ولا يبدو للعمل بالنسبة لي - Chris DaMour
علمت منذ ذلك الحين أن Chrome قد عطّل لبعض الوقت ، ولكنه أعاد تمكين هذه الميزة لاحقًا. لقد تعلمت أيضًا أن Safari سيرمي أخطاء التصيد عند تشغيل هذه الأنواع من الروابط .. في الأساس ، انتهى وقت مصادقة http المستندة إلى عنوان url. - Damien Overeem ツ


HTTP: // اسم المستخدم: password@example.com سوف يعمل لفايرفوكس ، كروم ، سفاري ولكن ليس لشركة آي إي.

مايكروسوفت قاعدة المعارف


16
2018-01-23 10:50



تمت إزالة هذه الإمكانية من Chrome 19+. نرى code.google.com/p/chromium/issues/detail؟id=123150 - Moshe Katz
من خلال قراءتي لتقرير الخطأ هذا ، تمت إضافته مرة أخرى إلى Chrome 20. بالتأكيد ، أتوقع رؤية الكثير من الشكوى المستمرة حول هذا الأمر إذا لم يكن كذلك. - womble♦
لقد طلبت ذلك الآن لـ Internet Explorer: connect.microsoft.com/IE/feedback/details/873575/.... حالة استخدام مختلفة قليلاً ، ولكنها تتناول نفس المشكلة ؛) - SimonSimCity
Diago إذا كانت كلمة المرور تحتوي على "@" ثم لا تعمل. أنه يعطي خطأ فادحًا ، هل يمكن لأحد أن يخبرني كيف يمكننا تقديم اسم المستخدم وكلمة المرور في الحال - Ashish Jain
AshishJain - سأحاول الهروب @ في كلمة المرور كما %40. (لا أعرف ما إذا كان ذلك ناجحًا ، وقد يعتمد على الخادم أو تركيبة المستعرض / الخادم.) - David Moles


تمرير معلمات المصادقة الأساسية في عنوان URL غير مستحسن

يوجد حقل عنوان التخويل لهذا الغرض التحقق من هنا: قائمة رأس HTTP

هو مكتوب كيفية استخدامها هنا: مصادقة الوصول الأساسية

هناك يمكنك أيضًا قراءة أنه على الرغم من أنه لا يزال مدعومًا من بعض المتصفحات ، لا يُوصى بالحل المقترح لإضافة بيانات اعتماد التفويض الأساسية في عنوان url.

اقرأ أيضا الفصل 4.1 في RFC 2617 - مصادقة HTTP لمزيد من التفاصيل حول سبب عدم استخدام المصادقة الأساسية.


تمرير معلمات المصادقة في سلسلة الاستعلام

عند استخدام OAuth أو خدمات مصادقة أخرى ، يمكنك غالبًا أيضًا إرسال الرمز المميز للوصول الخاص بك في سلسلة استعلام بدلاً من رأس تفويض ، لذلك شيء من هذا القبيل:

GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD

14
2017-09-24 07:55



وكيف يمكن للمرء أن يمرر ترميز رأس التخويل إلى عنوان URL؟ - womble♦
أليس هذا هو الشكل الذي ذكرته الآن تم إيقافه؟ - womble♦
كان السؤال الذي أجابته مع "هناك حقل رأس تخويل لهذا الغرض" يسأل عن كيفية وضع معلمات المصادقة في عنوان URL. إذا كنت لا تستطيع ترميز حقول رأس HTTP في عنوان URL (الذي لا يمكنك) ، فإن إجابتك هي غير متسلسلة. - womble♦
هل يمكنك الاستشهاد بمكان في معيار URI يقول أن تمرير معلمات المصادقة الأساسية في URI تم إيقافه؟ يقول RFC 2396 فقط أنه "غير مستحسن" لأن تفاصيل المصادقة في نص عادي ، في العديد من الحالات ، ليست فكرة جيدة (التي أوافق) ، بينما لا يذكر RFC 7235 شيئًا. في أي مكان في المواصفات يمكنني البحث يقول أنه موقوف. - Lie Ryan
@ ويلت: لا بد لي من الاعتذار ، كنت في الواقع الصحيح. تلميحك أن المواصفات "تم تغييرها" حرضتني على إجراء مزيد من التحقيق (لا يتم تعديل RFC مطلقًا بمجرد نشره / ترقيمه). أنا فقط وجدت أن RFC 2396 قد تم استبدالها بالفعل من قبل RFC 3986، والتي لم أتمكن من العثور عليها في وقت سابق. يذكر RFC 3986 إهمال اسم المستخدم: بناء جملة كلمة المرور: Use of the format "user:password" in the userinfo field is deprecated. - Lie Ryan


من الممكن (من الواضح) إرسال أي سلسلة في معلمات GET ، على الرغم من عدم التوصية بإرسال معلومات تسجيل الدخول وكلمة المرور ، كما يمكن جعلها مرئية بشكل واضح ، خاصة إذا لم تكن في طلب AJAX.

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


0
2017-09-11 08:22