URL පරාමිතීන් තුළ HTTP මූලික සත්‍යාපනය සඳහා පරිශීලකයා / සමත් විය හැකිද?


177

මෙය කළ නොහැකි යැයි මම විශ්වාස කරමි, නමුත් මා දන්නා අයෙකු එය ක්‍රියාත්මක වන ලෙස තරයේ කියා සිටියේය. උත්සාහ කළ යුතු පරාමිතීන් මොනවාදැයි මම නොදනිමි, මෙය කොතැනකවත් ලේඛනගත කර නොමැත.

මම http://myserver.com/~user=username&password=mypassword උත්සාහ කළ නමුත් එය ක්‍රියාත්මක නොවේ.

HTTP පරාමිතීන් (GET හෝ POST) හරහා පරිශීලකයා / සමත් වීම සැබවින්ම කළ නොහැකි බව ඔබට තහවුරු කළ හැකිද?



amsam - මොකක්ද? සම්පූර්ණ URL එක පෙනෙන්නේ කෙසේද?
ripper234

5
සියල්ලම ietf.org/rfc/rfc1738.txt (3.1)
Smudge

amsam - කණගාටුයි, කිසියම් හේතුවක් නිසා ඔබේ අදහස විග්‍රහ කිරීමට මා අසමත් විය.
ripper234

Answers:


237

සම්මත HTTP සත්‍යාපනය තුළ විමසුම් පරාමිතීන් හරහා පරිශීලක නාමය සහ මුරපදය යැවිය නොහැක. ඒ වෙනුවට, ඔබ මේ ආකාරයට විශේෂ URL ආකෘතියක් භාවිතා කරයි: http://username:password@example.com/- මෙය සම්මත HTTP “බලය පැවරීමේ” ශීර්ෂයේ අක්තපත්‍ර යවයි.

ඔබ කවුරුන් සමඟ කතා කළත් විමසුම් පරාමිතීන් දෙස බලා අක්තපත්‍ර සත්‍යාපනය කළ අභිරුචි මොඩියුලයක් හෝ කේතයක් ගැන සිතන්නට ඇත. මෙය සම්මත HTTP සත්‍යාපනය නොවේ, නමුත් එය යෙදුම් විශේෂිත දෙයක්.


1
ස්තූතියි, මෙය මා සොයමින් සිටි දෙයමයි ... එය GET පරාමිතීන් වීම විවේචනාත්මක නොවේ, මට එය URL එකට සැකසිය හැකිය.
ripper234

44
FYI, http://username:password@example.comආකෘතියට තවදුරටත් IE හෝ Chrome සහාය නොදක්වයි , අනෙක් අය දැනටමත් අනුගමනය කර නොමැති නම් ඔවුන් අනුගමනය කරන්නේ නම් පුදුම නොවනු ඇත.
ටී. ජේ ක්‍රෝඩර්

11
ඇත්තෙන්ම Chrome හි හොඳින් ක්‍රියා කරයි. නරක් වූ බ්‍රාට් වීම IE පමණි.
ඩේමියන් ඕවරීම් ツ

1
Am ඩේමියන් ඕවරම් ඔබ භාවිතා කරන ක්‍රෝම් අනුවාදය කුමක්ද? මම මැක් ඕඑස් x 37 හි සිටින අතර එය මට වැඩ කරන බවක් නොපෙනේ
ක්‍රිස් ඩමෝර්

11
ක්‍රෝම් එය යම් කලකට අක්‍රීය කර ඇති බව මම දැනගත් නමුත් පසුව මෙම අංගය නැවත සක්‍රීය කළෙමි. මෙම ආකාරයේ සබැඳි තුළට ධාවනය වන විට සෆාරි තතුබෑම් දෝෂ ඇති කරන බව මම ඉගෙන ගතිමි .. මූලික වශයෙන් url මත පදනම් වූ http සත්‍යාපනය කිරීමේ කාලය අවසන් වී ඇත ..
ඩේමියන් ඕවරීම් ツ

20

http: // username: password@example.com ෆයර්ෆොක්ස්, ක්‍රෝම්, සෆාරි සඳහා ක්‍රියා කරනු ඇත, නමුත් අයිඊ සඳහා නොවේ.

මයික්‍රොසොෆ්ට් දැනුම පදනම්


3
මෙම හැකියාව Chrome 19+ වෙතින් ඉවත් කරන ලදි. Code.google.com/p/chromium/issues/detail?id=123150
මෝෂේ කැට්ස්

4
එම දෝෂ වාර්තාව මා කියවීමෙන් එය නැවත ක්‍රෝම් 20 ට එකතු විය. නිසැකවම, එය නොතිබුනේ නම් ඒ පිළිබඳව දිගින් දිගටම පැමිණිලි කරනු ඇතැයි මම බලාපොරොත්තු වෙමි.
ගර්භාෂය

මම දැන් එය ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් සඳහා ඉල්ලා සිටිමි: connect.microsoft.com/IE/feedback/details/873575/… . තරමක් වෙනස් භාවිත අවස්ථා, නමුත් එකම ප්‍රශ්නය ආමන්ත්‍රණය කරයි;)
සයිමන්සිම්සිටි

1
@ ඩියාගෝ මුරපදයේ '@' තිබේ නම් එය ක්‍රියා නොකරයි. එය මාරාන්තික දෝෂයක් ලබා දෙයි, අපට එකවර පරිශීලක නාමය සහ මුරපදය ලබා දෙන්නේ කෙසේදැයි මට කිව හැකිද
අෂිෂ් ජේන්

@ අෂිෂ් ජේන් - @මුරපදයේ ඇති ආකාරයට ගැලවීමට මම උත්සාහ කරමි %40. (එය ක්‍රියාත්මක වේදැයි මම නොදනිමි, එය සේවාදායකය හෝ බ්‍රව්සරය / සේවාදායක සංයෝජනය මත රඳා පවතී.)
ඩේවිඩ් මෝල්ස්

18

URL හි මූලික සත්‍යාපන පරාමිතීන් පසු කිරීම නිර්දේශ නොකරයි

මෙම අරමුණු ඉටු කර ගැනීම මෙහි එය පරීක්ෂා කිරීම සඳහා බලය පැවරීමේ ශීර්ෂ ක්ෂේත්රයේ පවතී: http ශීර්ෂ ලැයිස්තුව

එය භාවිතා කරන්නේ කෙසේද යන්න මෙහි ලියා ඇත: මූලික ප්‍රවේශ සත්‍යාපනය

සමහර බ්‍රව්සර් තවමත් එයට සහය දක්වුවද, යූආර්එල් හි මූලික බලය පැවරීමේ අක්තපත්‍ර එකතු කිරීමේ යෝජිත විසඳුම නිර්දේශ නොකරන බව එහිදී ඔබට කියවිය හැකිය.

මූලික සත්‍යාපනය භාවිතා නොකිරීමට හේතුව පිළිබඳ වැඩි විස්තර සඳහා RFC 2617 - HTTP සත්‍යාපනයෙහි 4.1 වන පරිච්ඡේදයද කියවන්න .


විමසුම් දාමයේ සත්‍යාපන පරාමිතීන් පසු කිරීම

OAuth හෝ වෙනත් සත්‍යාපන සේවා භාවිතා කරන විට ඔබට බොහෝ විට ඔබගේ ප්‍රවේශ ටෝකනය බලය පැවරීමේ ශීර්ෂයක් වෙනුවට විමසුම් නූලකට යැවිය හැකිය, එබැවින් මෙවැනි දෙයක්:

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

බලය පැවරීමේ ශීර්ෂයක් URL එකකට කේතනය කිරීම ගැන යමෙක් යන්නේ කෙසේද?
ගර්භාෂය

2
ඔබ ප්‍රකාශ කළ පෝරමය දැන් අවලංගු කර තිබේද?
ගර්භාෂය

3
"මේ සඳහා බලය පැවරීමේ ශීර්ෂ ක්ෂේත්‍රයක් ඇත" යනුවෙන් ඔබ පිළිතුරු දුන් ප්‍රශ්නය වූයේ සත්‍යාපන පරාමිතීන් URL එකට ඇතුළත් කරන්නේ කෙසේද යන්නයි . ඔබට HTTP ශීර්ෂක ක්ෂේත්‍ර URL එකකට සංකේතනය කළ නොහැකි නම් (ඔබට එය කළ නොහැක), ඔබේ පිළිතුර අනුක්‍රමික නොවන ය.
ගර්භාෂය

යූආර්අයි හි මූලික සත්‍යාපන පරාමිතීන් පසු කිරීම අවලංගු කර ඇති බව යූආර්අයි ප්‍රමිතියේ සඳහන් වන ස්ථානය ඔබට සඳහන් කළ හැකිද? RFC 2396 පවසන්නේ එය “නිර්දේශ කර නොමැති” බවයි. මන්ද සරල පා text යේ සත්‍යාපන තොරතුරු බොහෝ අවස්ථාවන්හිදී හොඳ අදහසක් නොවේ (මම එකඟ වන), RFC 7235 කිසිවක් සඳහන් නොකරයි. මට සෙවිය හැකි පිරිවිතරයන්හි කොතැනකවත් එය අතහැර දමා ඇති බව නොකියයි.
බොරු රයන්

2
Ilt විල්ට්: මට සමාව ඉල්ලිය යුතුයි, ඔබ ඇත්ත වශයෙන්ම නිවැරදිය. පිරිවිතර “වෙනස්” කර ඇති බවට ඔබේ ඉඟිය වැඩිදුර විමර්ශනය කිරීමට මා පොළඹවා ඇත (RFC ප්‍රකාශයට පත් කළ විට / අංකනය කළ පසු එය කිසි විටෙකත් වෙනස් නොවේ). RFC 2396 ඇත්ත වශයෙන්ම RFC 3986 විසින් අභිබවා ගොස් ඇති බව මට පෙනී ගියේය , එය මට කලින් සොයාගත නොහැකි විය. RFC 3986 හි පරිශීලක නාමය අවලංගු කිරීම ගැන සඳහන් වේ: මුරපද වාක්‍ය ඛණ්ඩය:Use of the format "user:password" in the userinfo field is deprecated.
බොරු රයන්

0

ඔබගේ උදාහරණයේ, URL http://myserver.com/ වනුයේ:

http: // username: password@example.com/myserver.com/

12/19/2019 වන විට මම මෙය පරීක්ෂා කර ඇති අතර එය ක්‍රෝම් ෆයර්ෆොක්ස් සෆාරි සඳහා ක්‍රියා කරයි

මූලික සත්‍යාපනය සඳහා තවදුරටත් සහාය නොදක්වන IE සඳහා නොවේ. මම මෙය ක්‍රියාත්මක කළේ පරිශීලක නාමය සහ මුරපදය සඟවන SSRS 2017 භාවිතා කරමිනි. අප්‍රසිද්ධ බ්‍රව්සරයකින් මෙය පරීක්ෂා කිරීමට මම ඔබට නිර්දේශ කරමි. විවිධ අප්‍රසිද්ධ බ්‍රව්සර්වල මුරපදය සමඟ සහ රහිතව පරීක්ෂා කරන්න. මුරපදය නොමැති තැනැත්තා ඔබගෙන් මුරපදය ඉල්ලා සිටිය යුතුය.


"මූලික සත්‍යාපනය සඳහා තවදුරටත් සහාය නොදක්වන IE." - ඔබ තුළ පරිශීලක සහතික සම්මත අදහස් userinfo URL එක කොටසක්. IE තවමත් "[HTTP] මූලික සත්‍යාපනය" සඳහා සහය දක්වයි. ඔබේ උදාහරණ URL විය යුත්තේ : http://username:password@myserver.com/.
මිස්ටර් වයිට්

-1

GET පරාමිතීන් තුළ ඕනෑම නූලක් යැවීමට (පැහැදිලිවම) හැකි වුවද, එය දෘශ්‍යමාන වන පරිදි පිවිසුම් සහ මුරපද යැවීමට නිර්දේශ කර නැත, විශේෂයෙන් එය AJAX ඉල්ලීමක නොමැති නම්.

කෙසේ වෙතත්, ඔබට පිවිසුම් සහ මුරපදය උකහා ගැනීම සඳහා සේවාදායක පිටුව කේත කර පසුව වලංගු කර අවශ්‍ය ඕනෑම ආකාරයකින් ඒවා භාවිතා කළ යුතුය.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.