403 තහනම් එදිරිව 401 අනවසර HTTP ප්‍රතිචාර


2797

පවතින වෙබ් පිටුවක් සඳහා, නමුත් පරිශීලකයෙකුට ප්‍රමාණවත් වරප්‍රසාද නොමැති (ඒවා පුරනය වී හෝ නිසි පරිශීලක කණ්ඩායමට අයත් නොවේ), සේවය කිරීමට නිසි HTTP ප්‍රතිචාරය කුමක්ද?

401 Unauthorized?
403 Forbidden?
වෙන මොනවා හරි?

මේ දක්වා මා කියවා ඇති දෙය දෙක අතර වෙනස ඉතා පැහැදිලි නැත. එක් එක් ප්‍රතිචාරය සඳහා සුදුසු කුමන භාවිත අවස්ථාද?


361
401 'අනවසර' 401 'සත්‍යාපනය නොකළ' විය යුතුය, ගැටළුව විසඳනු ලැබේ!
ක්‍රිස්ටෝෆ් රූසි

47
මෙම ප්‍රශ්නය සඳහා මා සහ මගේ සගයන් කොපමණ වාරයක් නැවත ගොඩගැසී ඇත්දැයි මට මතක නැත. සමහර විට HTTP ප්‍රමිතීන් 401 සහ 403 සඳහා නම් හෝ විස්තර වෙනස් කිරීම සලකා බැලිය යුතුය.
නියුරයිට්

ඇත්ත වශයෙන්ම, මම මෙම දෝෂයේ වෙනස් අනුවාදයක් ලබා ගනිමි. "os_authType 'ඕනෑම' සහ අවලංගු කුකියක් යවන ලදි" වැනි. එබැවින් එය විසඳන්නේ කෙසේදැයි සිතා ගැනීමට නොහැකි විය. බොහෝ වේලාවක් ගූගල් කර, හේතු ඇතත් විසඳුමක් නොලැබුණි.
සන්දීප් ආනන්ද්

WQwerty no, නව RFC7231 යල් පැන ගිය RFC2616. 403 ට දැන් වෙනස් අර්ථයක් ඇත.
මාළු අස්ථි

1
ish ෆිෂ්බෝන් 401 තත්ව කේතය එම RFC වෙතින් ඉවත් කර ඇති බව ඔබ සටහන් නොකළේය: D
Barkermn01

Answers:


4135

ඩැනියෙල් ඉර්වින්ගෙන් පැහැදිලි පැහැදිලි කිරීමක් :

401 අනවසර , HTTP තත්ව කේතය සත්‍යාපන දෝෂ සඳහා ගැටළුවක් ඇත . එය එසේ ය: එය සත්‍යාපනය සඳහා මිස බලය පැවරීම සඳහා නොවේ. 401 ප්‍රතිචාරයක් ලැබීම සේවාදායකයා ඔබට කියනුයේ, “ඔබ සත්‍යාපනය කර නැත - එක්කෝ සත්‍යාපනය කර නැත හෝ වැරදි ලෙස සත්‍යාපනය කර නැත - නමුත් කරුණාකර නැවත සත්‍යාපනය කර නැවත උත්සාහ කරන්න.” ඔබට උදව් කිරීමට, එය සැමවිටම සත්‍යාපනය කරන්නේ කෙසේද යන්න විස්තර කරන WWW-Authenticate ශීර්ෂයක් ඇතුළත් වේ .

මෙය සාමාන්‍යයෙන් ඔබේ වෙබ් සේවාදායකයා විසින් ලබා දෙන ප්‍රතිචාරයකි, ඔබේ වෙබ් යෙදුම නොවේ.

එය ද ඉතා තාවකාලික දෙයක්; නැවත උත්සාහ කිරීමට සේවාදායකයා ඔබෙන් ඉල්ලා සිටී.

එබැවින්, අවසරය සඳහා මම 403 තහනම් ප්‍රතිචාරය භාවිතා කරමි . එය ස්ථිරයි, එය මගේ යෙදුම් තර්කනයට බැඳී ඇති අතර එය 401 ට වඩා ස්ථිර ප්‍රතිචාරයකි.

403 ප්‍රතිචාරයක් ලැබීම සේවාදායකයා ඔබට කියන්නේ, “මට කණගාටුයි. ඔබ කවුදැයි මම දනිමි - ඔබ කවුරුන්දැයි මම විශ්වාස කරමි - නමුත් ඔබට මෙම සම්පතට ප්‍රවේශ වීමට අවසර නැත. සමහර විට ඔබ පද්ධති පරිපාලකගෙන් හොඳට ඇසුවොත් ඔබට අවසර ලැබෙනු ඇත. ඔබේ අවාසනාවන්ත තත්වය වෙනස් වන තුරු කරුණාකර මට කරදර නොකරන්න. ”

සාරාංශයක් ලෙස, අස්ථානගත වූ හෝ අයහපත් සත්‍යාපනය සඳහා 401 අනවසර ප්‍රතිචාරයක් භාවිතා කළ යුතු අතර, පරිශීලකයා සත්‍යාපනය කළ නමුත් ලබා දී ඇති සම්පත මත ඉල්ලූ මෙහෙයුම සිදු කිරීමට බලය නොමැති විට 403 තහනම් ප්‍රතිචාරයක් භාවිතා කළ යුතුය.

Http තත්ව කේත භාවිතා කළ යුතු ආකාරය පිළිබඳ තවත් ලස්සන රූපමය ආකෘතියක් .

රූප විස්තරය මෙහි ඇතුළත් කරන්න


43
සුපුරුදු IIS 403 පණිවිඩය "මෙය සාමාන්‍ය 403 දෝෂයක් වන අතර එයින් අදහස් කරන්නේ සත්‍යාපනය කළ පරිශීලකයාට පිටුව බැලීමට අවසර නොමැති බවයි", එය එකඟ වන බවක් පෙනේ.
බෙන් චාලනර්

333
@JPReddy ඔබේ පිළිතුර නිවැරදි ය. කෙසේ වෙතත්, 401 "අනවසර" ලෙසත් 403 "අනවසර" ලෙසත් නම් කිරීමට මම බලාපොරොත්තු වෙමි. සත්‍යාපනය සමඟ සම්බන්ධ 401 ට “අනවසර” පා text ය සමඟ ආකෘතියක් තිබීම ඉතා ව්‍යාකූල ය .... මම ඉංග්‍රීසියෙන් හොඳ නැතිනම් (එය තරමක් හැකියාවක් ඇත).
p.matsinopoulos

64
A සයිඩ්මාසුඩ්, RFC ට අනුව මෙම අර්ථ නිරූපණය නිවැරදි නොවේ. කුඹයාගේ පිළිතුර එය නිවැරදි විය. 401 යන්නෙහි තේරුම "ඔබට නිවැරදි අවසරය අහිමි වී ඇත" යන්නයි. එයින් ගම්‍ය වන්නේ "ඔබට අවශ්‍ය නම් ඔබ සත්‍යාපනය කිරීමට උත්සාහ කළ හැකිය" යන්නයි. එබැවින් නිවැරදිව සත්‍යාපනය නොකළ සේවාදායකයෙකුට සහ නිසි පරිදි සත්‍යාපනය කළ සේවාදායකයෙකුට 401 ක් ලැබෙනු ඇත. 403 යන්නෙහි තේරුම “ඔබ කවුරුන් වුවත් මම මේකට පිළිතුරු නොදෙන්නෙමි” යන්නයි. 403 සම්බන්ධයෙන් “අවසරය උදව් නොකරන” බව RFC පැහැදිලිවම සඳහන් කරයි
.

84
401 යනු සත්‍යාපන දෝෂයකි, 403 බලය පැවරීමේ දෝෂයකි. ඒ තරම් සරළයි.
ෂාරියාර් ඉමානොව්

30
ඔබ ඔහුගේ බ්ලොග් සටහනෙන් පිටපත් කරන විට "හොඳයි, කෙසේ වෙතත් ඒ පිළිබඳ මගේ දැක්ම :)" යනුවෙනි. අවාසනාවකට ඔහුගේ දැක්ම වැරදිය. අනෙක් අය 403 ප්‍රකාශ කර ඇති පරිදි ඔබ සත්‍යාපනය කර ඇත්තේ කවුරුන්ද යන්න නොසලකා ඔබට සම්පතට ප්‍රවේශ විය නොහැක. මම සාමාන්‍යයෙන් මෙම තත්ව කේතය භාවිතා කරන්නේ අයිපී ලිපින පරාසයන් හෝ මගේ වෙබ්රූට් හි ගොනු මගින් අගුළු දමා ඇති සම්පත් සඳහා මට access ජු ප්‍රවේශයක් අවශ්‍ය නොවන (එනම් ස්ක්‍රිප්ටයක් ඔවුන්ට සේවය කළ යුතුය).
කයිල්

403

RFC2616 බලන්න :

401 අනවසර:

ඉල්ලීමට දැනටමත් බලය පැවරීමේ අක්තපත්‍ර ඇතුළත් කර ඇත්නම්, 401 ප්‍රතිචාරයෙන් පෙන්නුම් කරන්නේ එම අක්තපත්‍ර සඳහා අවසර දීම ප්‍රතික්ෂේප කර ඇති බවයි.

403 තහනම්:

සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරයි.

යාවත්කාලීන කරන්න

ඔබගේ භාවිත නඩුවෙන්, පරිශීලකයා සත්‍යාපනය කර නොමැති බව පෙනේ. මම 401 ආපසු දෙන්නෙමි.


සංස්කරණය කරන්න: RFC2616 යල්පැන ඇත, RFC7231 සහ බලන්න RFC7235 .


21
ස්තූතියි, එය මා වෙනුවෙන් එය පැහැදිලි කිරීමට උපකාරී විය. මම දෙකම භාවිතා කරමි - සත්‍යාපනය නොකළ පරිශීලකයින් සඳහා 401, ප්‍රමාණවත් අවසරයකින් තොරව සත්‍යාපනය කළ පරිශීලකයින් සඳහා 403.
VirtuosiMedia

52
මම අවතක්සේරු නොකළ නමුත් මෙම පිළිතුර නොමඟ යවන සුළුය. 403 තහනම් කිරීම කිසි විටෙකත් සේවය නොකරන අන්තර්ගතයන් සඳහා වඩාත් උචිත ලෙස භාවිතා කරයි (asp.net හි .config ගොනු වැනි). එය හෝ 404. ඉමෝ, ප්‍රවේශ විය හැකි යමක් සඳහා 403 ආපසු ලබා දීම සුදුසු නොවේ, නමුත් ඔබට නිවැරදි අක්තපත්‍ර නොමැත. මගේ විසඳුම වනුයේ අක්තපත්‍ර වෙනස් කිරීමේ මාර්ගයක් සහිත ප්‍රවේශ ප්‍රතික්ෂේප කළ පණිවිඩයක් ලබා දීමයි. එය හෝ 401.
මෙල්

28
"ප්‍රතිචාරයට ඉල්ලූ සම්පතට අදාළ වන අභියෝගයක් අඩංගු WWW- සත්‍යාපන ශීර්ෂ ක්ෂේත්‍රය (14.47 වගන්තිය) ඇතුළත් විය යුතුය." ඔබට HTTP ශෛලීය සත්‍යාපනය භාවිතා කිරීමට අවශ්‍ය නැතිනම් 401 ප්‍රතිචාර කේතයක් සුදුසු නොවන බව පෙනේ.
බ්‍රිලියන්ඩ්

8
මම මෙතනට බිලියන්ඩ්ව ආපහු දෙන්නම්. ප්රකාශය වන්නේ "ඉල්ලීමට දැනටමත් බලය පැවරීමේ අක්තපත්ර ඇතුළත් කර ඇත්නම්" යන්නයි. එයින් අදහස් වන්නේ මෙය අක්තපත්‍ර ලබා දුන් ඉල්ලීමක ප්‍රතිචාරයක් නම් (උදා: RFC2617 සත්‍යාපන උත්සාහයකින් ලැබෙන ප්‍රතිචාරය). "නරක ගිණුම / මුරපද යුගලය, නැවත උත්සාහ කරන්න" යැයි පැවසීමට සේවාදායකයාට ඉඩ දීම අත්‍යවශ්‍ය වේ. මතු කරන ලද ප්‍රශ්නයේදී, පරිශීලකයා අනුමාන කළ හැකි නමුත් අවසර දී නොමැත. 401 කිසි විටෙකත් එම තත්වයන් සඳහා සුදුසු ප්‍රතිචාරයක් නොවේ.
ldrut

6
බ්‍රිලියන්ඩ් හරි, 401 සුදුසු වන්නේ HTTP සත්‍යාපනය සඳහා පමණි.
ජුවාම්පි

296

RFC 2616 හි සන්දර්භය තුළ සත්‍යාපනය සහ බලය පැවරීම RFC 2617 හි HTTP සත්‍යාපන ප්‍රොටෝකෝලය වෙත පමණක් යොමු වන බව වටහා ගත යුතුය. RFC2617 ට පිටතින් ඇති යෝජනා ක්‍රම සත්‍යාපනය HTTP තත්ව කේත සඳහා සහය නොදක්වන අතර ඒවා නොසැලකේ. 401 හෝ 403 භාවිතා කළ යුතුද යන්න තීරණය කිරීමේදී.

සංක්ෂිප්ත හා ටර්සි

අනවසරයෙන් පෙන්නුම් කරන්නේ සේවාදායකයා RFC2617 සත්‍යාපනය කර නොමැති අතර සේවාදායකයා සත්‍යාපන ක්‍රියාවලිය ආරම්භ කරන බවයි. තහනම් කර ඇත්තේ සේවාදායකයා RFC2617 සත්‍යාපනය කර ඇති බවත් අවසරයක් නොමැති බවත් හෝ ඉල්ලූ සම්පත් සඳහා සේවාදායකයා RFC2617 සඳහා සහය නොදක්වන බවත්ය.

ඔබේම රෝල්-ඔබේම පිවිසුම් ක්‍රියාවලියක් තිබේ නම් සහ කිසි විටෙකත් HTTP සත්‍යාපනය භාවිතා නොකරන්නේ නම්, 403 සැමවිටම නිසි ප්‍රතිචාරයක් වන අතර 401 කිසි විටෙකත් භාවිතා නොකළ යුතුය.

සවිස්තරාත්මක හා ගැඹුර

RFC2616 සිට

10.4.2 401 අනවසර

ඉල්ලීමට පරිශීලක සත්‍යාපනය අවශ්‍ය වේ. ප්‍රතිචාරයට WWW-Authenticate ශීර්ෂ ක්ෂේත්‍රය (14.47 වගන්තිය) ඇතුළත් විය යුතුය. සේවාදායකයා සුදුසු බලය පැවරීමේ ශීර්ෂ ක්ෂේත්‍රයක් සමඟ ඉල්ලීම නැවත කළ හැකිය (14.8 කොටස).

හා

10.4.4 403 තහනම් සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරයි. බලය පැවරීම උදව් නොකරන අතර ඉල්ලීම නැවත නොකෙරේ.

මතක තබා ගත යුතු පළමු දෙය නම්, මෙම ලේඛනයේ සන්දර්භය තුළ “සත්‍යාපනය” සහ “බලය පැවරීම” විශේෂයෙන් RFC 2617 හි ඇති HTTP සත්‍යාපන ප්‍රොටෝකෝල වෙත යොමු වීමයි. ඒවා ඔබ විසින් නිර්මාණය කර ඇති කිසිදු රෝල්-ඔබේම සත්‍යාපන ප්‍රොටෝකෝල වෙත යොමු නොවේ. පිවිසුම් පිටු ආදිය භාවිතා කිරීම. RFC2617 හැර වෙනත් ක්‍රම මගින් සත්‍යාපනය සහ බලය පැවරීම සඳහා මම "පිවිසුම" භාවිතා කරමි.

එබැවින් සැබෑ වෙනස වන්නේ ගැටලුව කුමක්ද යන්න හෝ විසඳුමක් තිබුණද නොවේ. වෙනස වන්නේ සේවාදායකයා ඊළඟට සේවාදායකයා අපේක්ෂා කරන දෙයයි.

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

403 මඟින් පෙන්නුම් කරන්නේ සම්පත සැපයිය නොහැකි අතර වර්තමාන පරිශීලකයාට RFC2617 හරහා මෙය විසඳීමට ක්‍රමයක් නොමැති අතර උත්සාහ කිරීමේ තේරුමක් නැත. මෙයට හේතුව සත්‍යාපන මට්ටමක් ප්‍රමාණවත් නොවන බව දන්නා නිසා විය හැකිය (නිදසුනක් ලෙස IP අසාදු ලේඛනයක් නිසා), නමුත් එය පරිශීලකයා දැනටමත් සත්‍යාපනය කර ඇති අතර අධිකාරියක් නොමැති නිසා විය හැකිය. RFC2617 ආකෘතිය එක්-පරිශීලක, එක් අක්තපත්‍රයක් වන බැවින් පරිශීලකයාට බලය පැවරිය හැකි දෙවන අක්තපත්‍ර සමූහයක් තිබිය හැකි අවස්ථාව නොසලකා හැරිය හැක. එය කිසියම් ආකාරයක පිවිසුම් පිටුවක් හෝ වෙනත් RFC2617 නොවන සත්‍යාපන ප්‍රොටෝකෝලයක් උදව් කිරීමට හෝ උදව් නොකිරීමට යෝජනා නොකරයි - එය RFC2616 ප්‍රමිතීන්ට හා අර්ථ දැක්වීමට පිටින් ය.


සංස්කරණය කරන්න: RFC2616 යල්පැන ඇත, RFC7231 සහ RFC7235 බලන්න .


7
Http නොවන සත්‍යාපනය අවශ්‍ය වන පිටුවක් පරිශීලකයා ඉල්ලා සිටින විට අප කළ යුත්තේ කුමක්ද? තත්ව කේතය 403 යවන්නද?
marcovtwout

2
වෙනස පිළිබඳ මගේ ප්‍රශ්නවලට පිළිතුරු දුන් පිළිතුර මෙයයි.
පැට්‍රික්

9
මෙය වැදගත් ය: "ඔබට ඔබේම රෝල්-ඔබේම පිවිසුම් ක්‍රියාවලියක් තිබේ නම් සහ කිසි විටෙකත් HTTP සත්‍යාපනය භාවිතා නොකරන්නේ නම්, 403 සෑම විටම නිසි ප්‍රතිචාරයක් වන අතර 401 කිසි විටෙකත් භාවිතා නොකළ යුතුය."
ggg

1
lomarcovtwout ඔබේ පිවිසුම් පිටුවට 302 ක් හෝ තොරතුරු ඇතුළත් ශරීරයක් අඩංගු 403 ක් යවන්න.
ඇලෙක්ස්

5
RFC7235 "ඔබේම දෑ රෝල් කරන්න" හෝ විකල්ප සත්‍යාපන අභියෝග සඳහා සපයන්නේ නැද්ද? මගේ යෙදුමේ පිවිසුම් ප්‍රවාහයට එහි අභියෝගය WWW-Authenticateශීර්ෂක ස්වරූපයෙන් ඉදිරිපත් කළ නොහැක්කේ ඇයි ? බ්‍රව්සරයක් එයට සහය
නොදක්වුවද

127
  + -----------------------
  | සම්පත් තිබේද? (පුද්ගලික නම් එය බොහෝ විට සත්‍යාපනය කිරීමෙන් පසුව පරීක්ෂා කරනු ලැබේ)
  + -----------------------
    | |
 නැත | v ඔව්
    v + -----------------------
   404 | ලොග් වී තිබේද? (සත්‍යාපනය කර ඇත, aka සතුව සැසියක් හෝ JWT කුකියක් ඇත)
   හෝ + -----------------------
   401 | |
   403 නැත | | ඔව්
   3xx vv
              401 + -----------------------
       (404 හෙළි නොකරයි) | සම්පත් ලබා ගත හැකිද? (අවසරය, බලයලත්, ...)
              හෝ + -----------------------
             යළි-යොමුවීම | |
             පුරනය වීමට නැත | | ඔව්
                               | |
                               vv
                               403 හරි 200, යළි-යොමුවීම, ...
                      (හෝ 404: හෙළි නොකරයි)
                      (හෝ 404: පුද්ගලික නම් සම්පත් නොපවතී)
                      (හෝ 3xx: යළි හරවා යැවීම)

චෙක්පත් සාමාන්‍යයෙන් මෙම අනුපිළිවෙලින් සිදු කෙරේ:

  • 404 සම්පත් පොදු නම් සහ නොපවතී නම් හෝ 3xx යළි හරවා යැවීම
  • වෙනත්:
  • 401 පුරනය වී නොමැති නම් හෝ සැසිය කල් ඉකුත් වී ඇත
  • 403 පරිශීලකයාට සම්පත් වෙත ප්‍රවේශ වීමට අවසර නොමැති නම් (ගොනුව, json, ...)
  • 404 සම්පත් නොපවතින නම් හෝ කිසිවක් හෙළි කිරීමට අකමැති නම් හෝ 3xx යළි හරවා යැවීම

අනවසර : ඉල්ලීම සත්‍යාපනය අවශ්‍ය බව පෙන්වන තත්ව කේතය (401) , සාමාන්‍යයෙන් මෙයින් අදහස් කරන්නේ පරිශීලකයා ලොග්-ඉන් (සැසිය) අවශ්‍ය බවයි. සේවාදායකයා නොදන්නා පරිශීලක / නියෝජිතයා. වෙනත් අක්තපත්‍ර සමඟ නැවත කළ හැකිය. සටහන: මෙය අවුල් සහගත බැවින් මෙය 'අනවසර' වෙනුවට 'සත්‍යාපනය නොකළ' ලෙස නම් කළ යුතුව තිබුණි. සැසිය කල් ඉකුත් වුවහොත් පුරනය වීමෙන් පසුවද මෙය සිදුවිය හැකිය. විශේෂ අවස්ථාව: සම්පත් තිබීම හෝ නොපැවතීම වළක්වා ගැනීම සඳහා 404 වෙනුවට භාවිතා කළ හැකිය (බැර @gingerCodeNinja)

FORBIDDEN : සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරන තත්ව කේතය (403). පරිශීලකයා / නියෝජිතයා සේවාදායකයා දන්නා නමුත් ප්‍රමාණවත් අක්තපත්‍ර නොමැත . අක්තපත්‍ර වෙනස් නොවන්නේ නම්, නැවත නැවත ඉල්ලීම ක්‍රියාත්මක නොවනු ඇත, එය කෙටි කාලයක් තුළ ඉතා අසීරු ය. විශේෂ අවස්ථාව: සම්පත් තිබීම හෝ නොපැවතීම වළක්වා ගැනීම සඳහා 404 වෙනුවට භාවිතා කළ හැකිය (බැර @gingerCodeNinja)

සොයාගත නොහැකි : තත්ත්වය කේතය (404) ඉල්ලා සම්පත් ලබා ගත හැකි නොවන බව පෙන්නුම්. පරිශීලකයා / නියෝජිතයා දන්නා නමුත් සේවාදායකයා සම්පත ගැන කිසිවක් හෙළි නොකරනු ඇත, එය නොපවතින ලෙස ක්‍රියා කරයි. නැවත නැවත කිරීම වැඩ නොකරනු ඇත. මෙය 404 හි විශේෂ භාවිතයකි (උදාහරණයක් ලෙස ගිතුබ් එය කරයි).

H ක්‍රිෂ් විසින් සඳහන් කළ පරිදි ඒ සඳහා විකල්ප කිහිපයක් තිබේ යළි හරවා යැවීම (301, 302, 303, 307 හෝ නැවත හරවා යැවීම සහ 401 භාවිතා කිරීම):


උදාහරණයක් ලෙස මම පුරනය වී ඇති අතර මට පිටුවකට ප්‍රවේශ විය හැකි නමුත් එය මට සක්‍රීය කර නැත. කුමන තත්ව කේතය නැවත පැමිණේ ද?
බාර්ටෙලෝමා

mark පොත් සලකුණු ලොග් වීම සත්‍යාපනය ලෙස හැඳින්වේ, එය පළමු පියවර වේ. එබැවින් ඔබට පිවිසීමෙන් පසු අවසරයක් නොමැති නම් ඔබට 403 තහනම් (ප්‍රමාණවත් අක්තපත්‍ර යනු ඔබට ප්‍රමාණවත් අවසර නොමැති බව) ලැබෙනු ඇත.
ක්‍රිස්ටෝෆ් රූසි

3
පැහැදිලි සහ සරල පැහැදිලි කිරීමක්. මට අවශ්‍ය දේ.
එස්ටීවෙස්

පරිශීලකයා ලොග් වී හෝ ලොග් වී නොමැති නමුත් අවසරයක් නොමැති නම් සහ අන්තර්ගතය ස්ථානයේ නොපවතී නම්, සමහර විට ඔබට 404 වෙනුවට 401/403 ආපසු ලබා දීමට අවශ්‍ය වනු ඇත, එවිට ඔබ යනු කුමක්ද යන්න හෝ හෙළි නොකිරීම පරිශීලකයා සත්‍යාපනය කර ප්‍රවිෂ්ට වී නොමැති නම් එහි නොමැත. යමක් පවතින බව දැන ගැනීමෙන් යම් දෙයකට ඉඟි කළ හැකිය. එබැවින් සමහර විට මෙම රූප සටහනේ 404 කොටස පුරනය වී ඇති / සත්‍යාපනය කළ යුතුය.
gingerCodeNinja

1
Att no revealසමහර විට සියුම් කාල වෙනස්කම් මගින් මෙම නඩුව හඳුනාගත හැකි අතර එය ආරක්ෂක අංගයක් ලෙස නොසැලකිය යුතුය, එය ප්‍රහාරකයන්ගේ වේගය අඩු කිරීමට හෝ පෞද්ගලිකත්වයට මඳක් උදව් කිරීමට ඉඩ ඇති බව සටහන් කරන්න.
ක්‍රිස්ටෝෆ් රූසි

114

අනුව RFC 2616 (HTTP / 1.1) 403 වන විට යවා ඇත:

සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරයි. බලය පැවරීම උදව් නොකරන අතර ඉල්ලීම නැවත නොකෙරේ. ඉල්ලීමේ ක්‍රමය HEAD නොවූයේ නම් සහ ඉල්ලීම ඉටු නොවීමට හේතුව සේවාදායකයා විසින් ප්‍රසිද්ධියට පත් කිරීමට අදහස් කරන්නේ නම්, එම ආයතනය ප්‍රතික්ෂේප වීමට හේතුව එය විස්තර කළ යුතුය. සේවාදායකයාට මෙම තොරතුරු ලබා දීමට සේවාදායකයා අකමැති නම්, ඒ වෙනුවට 404 (සොයාගත නොහැකි) තත්ව කේතය භාවිතා කළ හැකිය

වෙනත් වචන වලින් කිවහොත්, සත්‍යාපනය කිරීමෙන් සේවාදායකයාට සම්පතට ප්‍රවේශය ලබා ගත හැකි නම්, 401 යැවිය යුතුය.


5
ඔවුන්ට ප්‍රවේශ විය හැකිද නැද්ද යන්න පැහැදිලි නැතිනම්? මට පරිශීලක මට්ටම් 3 ක් ඇති බව පවසන්න - මහජන, සාමාජික, සහ වාරික සාමාජික. පිටුව වාරික සාමාජිකයන් සඳහා පමණක් යැයි උපකල්පනය කරන්න. ප්රසිද්ධ පරිශීලක මූලික වශයෙන් unauthenticated වන අතර හැකි ඔවුන් login විට සාමාජිකයින් හෝ වාරික සාමාජිකයින් හෝ විය. මන්ත්රී පරිශීලක මට්ටමේ සඳහා, 403 සුදුසු වන බව පෙනී යයි. වාරික සාමාජිකයින් සඳහා, 401. කෙසේ වෙතත්, ඔබ මහජනතාවට සේවය කරන්නේ කුමක් ද?
VirtuosiMedia

27
imho, මෙය වඩාත් නිවැරදි පිළිතුරයි. එය යෙදුම මත රඳා පවතින නමුත් සාමාන්‍යයෙන්, සත්‍යාපනය කළ පරිශීලකයෙකුට සම්පතක් සඳහා ප්‍රමාණවත් අයිතිවාසිකම් නොමැති නම්, ඔබට අක්තපත්‍ර වෙනස් කිරීමට හෝ 401 ක් යැවීමට ක්‍රමයක් සැපයීමට අවශ්‍ය වනු ඇත. කිසි විටෙකත් සේවය නොකරන අන්තර්ගතයට 403 වඩාත් සුදුසු යැයි මම සිතමි. Asp.net හි මෙයින් අදහස් කෙරෙනුයේ web.config ගොනු * .resx ගොනු යනාදියයි. මන්ද කුමන පරිශීලකයා ලොග් වූවත් මෙම ලිපිගොනු කිසි විටෙකත් සේවය නොකෙරෙන බැවින් නැවත උත්සාහ කිරීමෙන් පලක් නැත.
මෙල්

6
+1, නමුත් අවිනිශ්චිත +1. තාර්කික නිගමනය නම් 403 කිසි විටෙකත් ආපසු නොයැවිය යුතු බැවින් 401 හෝ 404 යනු වඩා හොඳ ප්‍රතිචාරයක් වනු ඇත.
CurtainDog

12
ElMel මම හිතන්නේ සේවාදායකයාට ප්‍රවේශ නොවිය යුතු ගොනුවක් 404 ක් විය යුතුයි. එය පද්ධතියට අභ්‍යන්තර වන ගොනුවක්; පිටතින් එය පවතින බව නොදැන සිටිය යුතුය. 403 ක් ආපසු ලබා දීමෙන් ඔබ එය පවතින බව සේවාදායකයාට දැන ගැනීමට සලස්වයි, එම තොරතුරු හැකර්වරුන්ට ලබා දිය යුතු නැත. 403 සඳහා පිරිවිතරයේ දැක්වේAn origin server that wishes to "hide" the current existence of a forbidden target resource MAY instead respond with a status code of 404 (Not Found).
ජුවාන් මෙන්ඩිස්

3
මෙය පැරණි RFC 2616 හි නිවැරදි අර්ථකථනයක් ලෙස මට පෙනුනද, RFC 7231 403 හි අර්ථ නිරූපණය වෙනස් ආකාරයකින් අර්ථ දක්වා ඇති බව සලකන්න . ඇත්ත වශයෙන්ම පැහැදිලිවම "සේවාදායකයා නව හෝ වෙනස් අක්තපත්‍ර සමඟ ඉල්ලීම නැවත කළ හැකිය." එබැවින් 2010 දී මෙම පිළිතුර නිවැරදි වූවත්, අද එය සම්පූර්ණයෙන්ම වැරදියි, මන්ද තත්ව කේතයේ අර්ථය අපගේ පාද යටින් නැවත ලියා ඇත. (කරදරකාරී ලෙස, RFC 2616 උපග්‍රන්ථයේ වෙනස්වීම් වෙනස පිළිගන්නේ නැත!)
මාර්ක් අමරි

46

HTTP සත්‍යාපනය ( WWW-Authenticate සහ Authorization headers) භාවිතයේ ඇතැයි උපකල්පනය කිරීම , වෙනත් පරිශීලකයෙකු ලෙස සත්‍යාපනය කිරීම ඉල්ලූ සම්පතට ප්‍රවේශය ලබා දෙන්නේ නම්, 401 අනවසර ආපසු ලබා දිය යුතුය.

HTTP සත්‍යාපනය හා සම්බන්ධ නොවන තාක් කල්, සම්පතට ප්‍රවේශ වීම සෑම කෙනෙකුටම තහනම් කර ඇති විට හෝ ලබා දී ඇති ජාලයකට සීමා වූ විට හෝ SSL හරහා පමණක් අවසර දී ඇති විට තහනම්ය.

HTTP සත්‍යාපනය භාවිතයේ නොමැති නම් සහ වර්තමානයේ සාමාන්‍ය පරිදි සේවාව කුකී මත පදනම් වූ සත්‍යාපන යෝජනා ක්‍රමයක් නම්, 403 හෝ 404 ආපසු ලබා දිය යුතුය.

401 සම්බන්ධයෙන්, මෙය RFC 7235 වෙතින් (හයිපර් ටෙක්ස්ට් ට්‍රාන්ස්ෆර් ප්‍රොටොකෝලය (HTTP / 1.1): සත්‍යාපනය):

3.1. 401 අනවසර

401 (අනවසර) තත්ව කේතය පෙන්නුම් කරන්නේ ඉලක්කගත සම්පත සඳහා වලංගු සත්‍යාපන අක්තපත්‍ර නොමැති නිසා ඉල්ලීම අදාළ නොවන බවයි. ප්‍රභව සේවාදායකයට අවම වශයෙන් එක් අභියෝගයක්වත් අඩංගු WWW- සත්‍යාපන ශීර්ෂ ක්ෂේත්‍රය (4.4 වගන්තිය) යැවිය යුතුය. ඉල්ලීමට සත්‍යාපන අක්තපත්‍ර ඇතුළත් නම්, 401 ප්‍රතිචාරයෙන් පෙන්නුම් කරන්නේ එම අක්තපත්‍ර සඳහා අවසර දීම ප්‍රතික්ෂේප කර ඇති බවයි. සේවාදායකයා නව හෝ ප්‍රතිස්ථාපිත බලය පැවරීමේ ශීර්ෂ ක්ෂේත්‍රයක් සමඟ ඉල්ලීම නැවත කළ හැකිය (4.1 වගන්තිය). 401 ප්‍රතිචාරයේ පෙර ප්‍රතිචාරයට සමාන අභියෝගයක් තිබේ නම් සහ පරිශීලක නියෝජිතයා දැනටමත් අවම වශයෙන් එක් වරක්වත් සත්‍යාපනය කිරීමට උත්සාහ කර ඇත්නම්, පරිශීලක නියෝජිතයා විසින් අදාළ රෝග විනිශ්චය තොරතුරු අඩංගු බැවින් පරිශීලකයාට සංවෘත නිරූපණය ඉදිරිපත් කළ යුතුය.

403 (සහ 404) හි අර්ථ නිරූපණය කාලයත් සමඟ වෙනස් වී ඇත. මෙය 1999 සිට (RFC 2616):

10.4.4 403 තහනම්

සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරයි.
බලය පැවරීම උදව් නොකරන අතර ඉල්ලීම නැවත නොකෙරේ .
ඉල්ලීමේ ක්‍රමය HEAD
නොවූයේ නම් සහ ඉල්ලීම ඉටු නොවීමට හේතුව සේවාදායකයා විසින් ප්‍රසිද්ධියට පත් කිරීමට අදහස් කරන්නේ නම් , එම ආයතනය ප්‍රතික්ෂේප වීමට හේතුව එය විස්තර කළ යුතුය. සේවාදායකයාට මෙම තොරතුරු ලබා දීමට සේවාදායකයා අකමැති නම්,
ඒ වෙනුවට 404 (සොයාගත නොහැකි) තත්ව කේතය භාවිතා කළ හැකිය.

2014 දී RFC 7231 (හයිපර් ටෙක්ස්ට් ට්‍රාන්ස්ෆර් ප්‍රොටොකෝලය (HTTP / 1.1): අර්ථ නිරූපණය සහ අන්තර්ගතය) 403 හි අර්ථය වෙනස් කළේය:

6.5.3. 403 තහනම්

403 (තහනම්) තත්ව කේතය මඟින් සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය අවසර දීම ප්‍රතික්ෂේප කරයි. ඉල්ලීම තහනම් කර ඇත්තේ ඇයිද යන්න ප්‍රසිද්ධ කිරීමට අපේක්ෂා කරන සේවාදායකයෙකුට එම හේතුව ප්‍රතිචාර ගෙවීමේදී විස්තර කළ හැකිය (ඇත්නම්).

ඉල්ලීමෙහි සත්‍යාපන අක්තපත්‍ර ලබා දී ඇත්නම්,
ප්‍රවේශය ලබා දීමට ඒවා ප්‍රමාණවත් නොවන බව සේවාදායකයා සලකයි. සේවාදායකයා
එම
අක්තපත්‍ර සමඟ ඉල්ලීම ස්වයංක්‍රීයව පුනරාවර්තනය නොකළ යුතුය. සේවාදායකයා නව හෝ වෙනස් අක්තපත්‍ර සමඟ ඉල්ලීම නැවත කළ හැකිය. කෙසේ වෙතත්,
අක්තපත්‍ර හා සම්බන්ධ නොවන හේතු නිසා ඉල්ලීමක් තහනම් කළ හැකිය .


තහනම් ඉලක්කගත සම්පතක වර්තමාන පැවැත්ම "සැඟවීමට" කැමති ප්‍රභව සේවාදායකයක් ඒ වෙනුවට
404 තත්ව කේතය සමඟ ප්‍රතිචාර දක්වයි (හමු නොවීය).

මේ අනුව, 403 (හෝ 404) දැන් ඕනෑම දෙයක් ගැන අදහස් කරයි. නව අක්තපත්‍ර ලබා දීම ප්‍රයෝජනවත් විය හැකිය ... නැතහොත් එසේ නොවිය හැකිය.

මෙය වෙනස් වීමට හේතුව RFC 2616 උපකල්පනය කර ඇති අතර වර්තමානයේ වෙබ් යෙදුම් උදාහරණ පෝරම සහ කුකීස් භාවිතා කරමින් අභිරුචි සත්‍යාපන යෝජනා ක්‍රම ගොඩනඟන විට HTTP සත්‍යාපනය භාවිතා කරනු ඇතැයි උපකල්පනය කර ඇත.


2
මෙය සිත්ගන්නා සුළුය. RFC 7231 සහ RFC 7235 මත පදනම්ව, 401 සහ 403 අතර පැහැදිලි වෙනසක් මා දකින්නේ නැත
බ්‍රයන්

2
403 යන්නෙහි තේරුම "මම ඔබව හඳුනන නමුත් ඔබට මෙම සම්පත නොපෙනේ." ව්යාකූලත්වයට හේතුවක් නැත.
මයිකල් බ්ලැක්බර්න්

"ඉල්ලීමට සත්‍යාපන අක්තපත්‍ර ඇතුළත් නම්, 401 ප්‍රතිචාරයෙන් පෙන්නුම් කරන්නේ එම අක්තපත්‍ර සඳහා අවසර දීම ප්‍රතික්ෂේප කර ඇති බවයි. සේවාදායකයා නව හෝ ප්‍රතිස්ථාපිත බලය පැවරීමේ ශීර්ෂ ක්ෂේත්‍රය සමඟ ඉල්ලීම නැවත කළ හැකිය (4.1 වගන්තිය)." කෙසේ වෙතත්, පසුව "4.2. 'බලය පැවරීමේ' ශීර්ෂ ක්ෂේත්‍රය පරිශීලක නියෝජිතයෙකුට ප්‍රභව සේවාදායකයක් සමඟ සත්‍යාපනය කිරීමට ඉඩ දෙයි". RFC7235 හි ඔවුන් “බලය පැවරීම” යන යෙදුම “සත්‍යාපනය” ලෙස භාවිතා කරන බව පෙනේ. එවැනි අවස්ථාවකදී, සත්‍යාපනය කළ නමුත් බලයලත් නොවන පරිශීලකයෙකුට 401 ලබා නොගත යුතු බව පෙනේ, ඒ වෙනුවට 403
arcuri82

29

මෙය පැරණි ප්‍රශ්නයකි, නමුත් කිසි විටෙකත් සත්‍ය වශයෙන්ම ගෙන ඒමට නොහැකි වූ එක් විකල්පයක් වූයේ 404 ආපසු ලබා දීමයි. ආරක්ෂක දෘෂ්ටි කෝණයෙන් බලන කල, ඉහළම ඡන්දය දුන් පිළිතුර විභව තොරතුරු කාන්දු වීමේ අවදානමට ලක් වේ. නිදසුනක් ලෙස, ආරක්ෂිත වෙබ් පිටුව පද්ධති පරිපාලක පිටුවක් යැයි පවසන්න, නැතහොත් වඩාත් පොදු ලෙස, පරිශීලකයාට ප්‍රවේශය නොමැති පද්ධතියක වාර්තාවකි. අනිෂ්ට පරිශීලකයෙකු එහි පිටුවක් / වාර්තාවක් ඇති බව දැන ගැනීමට ඔබට අවශ්‍ය නොවනු ඇත. මම මේ වගේ දෙයක් ගොඩනඟන විට, මම සත්‍යාපනය නොකළ / අනවසර ඉල්ලීම් අභ්‍යන්තර ලොගයක සටහන් කිරීමට උත්සාහ කරමි, නමුත් 404 ක් ආපසු එවන්න.

ප්‍රහාරයක කොටසක් ලෙස ප්‍රහාරකයෙකුට මෙම ආකාරයේ තොරතුරු භාවිතා කළ හැකි ආකාරය පිළිබඳ තවත් තොරතුරු OWASP සතුව ඇත .


3
404 භාවිතා කිරීම පෙර පිළිතුරු වල සඳහන් කර ඇත. ඔබ නැවත කරුණු: තොරතුරු කාන්දු වීම සහ ඕනෑම කෙනෙකුට තමන්ගේම සත්‍යාපන / බලය පැවරීමේ යෝජනා ක්‍රමයක් ක්‍රියාත්මක කිරීම සඳහා මෙය වැදගත් කරුණක් විය යුතුය. OWASP සඳහන් කිරීම සඳහා +1.
ඩේව් වොට්ස්

හාස්‍යයට කරුණක් නම් OWASP සබැඳිය දැන් පිටු 404 කට යයි. Owasp.org/index.php/… හි
anned20

හිස ඔසවා තැබීමට ස්තූතියි, මම එය යාවත්කාලීන කළෙමි!
පැට්‍රික් වයිට්

API සහ ප්‍රවේශය ලබා දෙන ආකාරය මත රඳා පවතී. පරිශීලක නාමය / මුරපදය සඳහා එය 401 ක් ආපසු ලබා දෙන්නේ නම් "කාන්දු වීම" ගැටළුවක් නොවේද එය නිසැකවම වෙබ් පෝරමයකට සමානද?
ජේම්ස්

26
  • 401 අනවසර : ඔබ කවුදැයි මම නොදනිමි. මෙය සත්‍යාපන දෝෂයකි.
  • 403 තහනම් : ඔබ කවුදැයි මම දනිමි, නමුත් ඔබට මෙම සම්පතට ප්‍රවේශ වීමට අවසර නැත. මෙය බලය පැවරීමේ දෝෂයකි.

එය නිශ්චිතවම "සැමවිටම" යන්නෙන් අදහස් කරන්නේ යවන්නා නොදන්නා බවය. ඔවුන් ඉල්ලා සිටි ඕනෑම දෙයකට අවසර නැත.
ජේම්ස්

22

මෙම ප්‍රශ්නය මීට කලකට පෙර විමසන ලද නමුත් මිනිසුන්ගේ චින්තනය ඉදිරියට යයි.

මෙම කෙටුම්පතේ 6.5.3 වගන්තිය (ෆීල්ඩින් සහ රෙස්ච්කේ විසින් රචිත) 403 තත්ව කේතය RFC 2616 හි ලේඛනගත කර ඇති ආකාරයට තරමක් වෙනස් අර්ථයක් ලබා දෙයි .

ජනප්‍රිය වෙබ් සේවාදායකයන් සහ රාමු ගණනාවක් භාවිතා කරන සත්‍යාපන සහ බලය පැවරීමේ යෝජනා ක්‍රමවල සිදුවන්නේ කුමක්ද යන්න එයින් පිළිබිඹු වේ.

වඩාත්ම වැදගත් යැයි මා සිතන තරම මම අවධාරණය කර ඇත්තෙමි.

6.5.3. 403 තහනම්

403 (තහනම්) තත්ව කේතය මඟින් සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය අවසර දීම ප්‍රතික්ෂේප කරයි. ඉල්ලීම තහනම් කර ඇත්තේ ඇයිද යන්න ප්‍රසිද්ධ කිරීමට අපේක්ෂා කරන සේවාදායකයෙකුට එම හේතුව ප්‍රතිචාර ගෙවීමේදී විස්තර කළ හැකිය (ඇත්නම්).

ඉල්ලීමෙහි සත්‍යාපන අක්තපත්‍ර ලබා දී ඇත්නම්, ප්‍රවේශය ලබා දීමට ඒවා ප්‍රමාණවත් නොවන බව සේවාදායකයා සලකයි. සේවාදායකයා එකම අක්තපත්‍ර සමඟ ඉල්ලීම නැවත නොකළ යුතුය. සේවාදායකයා නව හෝ වෙනස් අක්තපත්‍ර සමඟ ඉල්ලීම නැවත කළ හැකිය. කෙසේ වෙතත්, අක්තපත්‍ර හා සම්බන්ධ නොවන හේතු නිසා ඉල්ලීමක් තහනම් කළ හැකිය.

තහනම් ඉලක්කගත සම්පතක වර්තමාන පැවැත්ම "සැඟවීමට" කැමති ප්‍රභව සේවාදායකයක් ඒ වෙනුවට 404 තත්ව කේතය සමඟ ප්‍රතිචාර දක්වයි (හමු නොවීය).

ඔබ කුමන සම්මුතියක් භාවිතා කළත්, වැදගත් දෙය නම් ඔබේ වෙබ් අඩවිය / ඒපීඅයි හරහා ඒකාකාරිත්වය සැපයීමයි.


2
කෙටුම්පත අනුමත කරන ලද අතර දැන් එය RFC 7231 වේ.
වෙබ්ජෝන් ලෝජා

13

ටීඑල්; ඩී.ආර්

  • 401: සත්‍යාපනය සමඟ සම්බන්ධ වීම ප්‍රතික්ෂේප කිරීම
  • 403: සත්‍යාපනය සමඟ කිසිම සම්බන්ධයක් නැති ප්‍රතික්ෂේප කිරීම

ප්‍රායෝගික උදාහරණ

අපචේට සත්‍යාපනය අවශ්‍ය නම් (හරහා .htaccess), සහ ඔබ පහර දුන්නොත් Cancel, එය ප්‍රතිචාර දක්වනුයේ a401 Authorization Required

නම් විකිපීඩියා ගොනු සම්බ, නමුත් කිසිදු ප්රවේශ හිමිකම් කියවීමට / ප්රවේශ එය (පරිශීලක / කණ්ඩායම්), එය සමග ප්රතිචාර දක්වනු ඇත403 Forbidden

RFC (2616 කොටස 10)

401 අනවසර (10.4.2)

තේරුම 1: සත්‍යාපනය කිරීමට අවශ්‍යයි

ඉල්ලීමට පරිශීලක සත්‍යාපනය අවශ්‍ය වේ. ...

තේරුම 2: සත්‍යාපනය ප්‍රමාණවත් නොවේ

... ඉල්ලීමට දැනටමත් බලය පැවරීමේ අක්තපත්‍ර ඇතුළත් කර ඇත්නම්, 401 ප්‍රතිචාරයෙන් පෙන්නුම් කරන්නේ එම අක්තපත්‍ර සඳහා අවසර දීම ප්‍රතික්ෂේප කර ඇති බවයි. ...

403 තහනම් (10.4.4)

අර්ථය: සත්‍යාපනය හා සම්බන්ධ නැත

... අවසර දීම උදව් නොකරනු ඇත ...

වැඩිපුර විස්තර:

  • සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් එය ඉටු කිරීම ප්‍රතික්ෂේප කරයි.

  • ආයතනය ප්‍රතික්ෂේප කිරීමට හේතුව එය විස්තර කළ යුතුය

  • ඒ වෙනුවට 404 (සොයාගත නොහැකි) තත්ව කේතය භාවිතා කළ හැකිය

    (සේවාදායකයාට මෙම තොරතුරු සේවාදායකයාගෙන් තබා ගැනීමට අවශ්‍ය නම්)


11

ඒවා පුරනය වී හෝ නිසි පරිශීලක කණ්ඩායමට අයත් නොවේ

ඔබ වෙනස් අවස්ථා දෙකක් ප්‍රකාශ කර ඇත; සෑම අවස්ථාවකටම වෙනස් ප්‍රතිචාරයක් තිබිය යුතුය:

  1. ඔවුන් කිසිසේත් ලොග් වී නොමැති නම් ඔබ 401 අනවසරයෙන් ආපසු එවිය යුතුය
  2. ඔවුන් පුරනය වී ඇති නමුත් නිසි පරිශීලක කණ්ඩායමට අයත් නොවේ නම්, ඔබ තහනම් 403 ආපසු එවිය යුතුය

මෙම පිළිතුරට ලැබුණු අදහස් මත පදනම්ව RFC පිළිබඳ සටහන:

පරිශීලකයා පුරනය වී නොමැති නම් ඒවා සත්‍යාපනය කර නොමැති නම්, එච්ටීටීපී සමාන 401 ක් වන අතර එය නොමඟ යවන ලෙස RFC හි අනවසර ලෙස හැඳින්වේ. ලෙස කොටස 10.4.2 සඳහා රාජ්යයන් 401 අනවසර :

"ඉල්ලීමට පරිශීලක සත්‍යාපනය අවශ්‍ය වේ ."

ඔබ සත්‍යාපනය කර නොමැති නම්, 401 නිවැරදි ප්‍රතිචාරයයි. කෙසේ වෙතත් ඔබ අනවසර නම්, අර්ථයෙන් නිවැරදි අර්ථයෙන් 403 යනු නිවැරදි ප්‍රතිචාරයයි.


5
මෙය නිවැරදි නොවේ. RFC සහ umb කුඹයාගේ පිළිතුර වෙත යොමු වන්න .
ඩේවිඩ් ආර්.

7
Av ඩේවිඩ් ආර්. RFC විසින් සත්‍යාපනය සහ බලය පැවරීම එකිනෙකට වෙනස් ලෙස භාවිතා කරයි . සත්‍යාපන අර්ථය සමඟ කියවන විට එය වඩාත් අර්ථවත් වනු ඇතැයි මම විශ්වාස කරමි .
සයිඩ් මසුඩ්

මෙම පිළිතුර ආපසු හරවනු ලැබේ. අනවසරයෙන් සත්‍යාපනය කළ ආකාරයට සමාන නොවේ. Av ඩේවිඩ් ආර් හරි. සත්‍යාපනය සහ බලය පැවරීම එකිනෙකට හුවමාරු නොවේ
බොසෝජෝ

2
2616 පුළුස්සා දැමිය යුතුය. "මම ඔබව නොදනිමි" සහ "මම ඔබව හඳුනමි, නමුත් ඔබට මෙය වෙත පිවිසිය නොහැක" අතර වෙනස හඳුනා ගැනීමේ අවශ්‍යතාවයක් ඇති බව නව RFC කිහිපයක් වඩාත් පැහැදිලි ය. නැත කිසිදු මෙම 403-truthers යෝජනා කරන දේ වන (http හරහා හෝ ඉටු නොවේ) කිසිදා ඉටු කරන බව සම්පත් පැවැත්ම පිළිගැනීමට සාධාරණ හේතුවක්.
මයිකල් බ්ලැක්බර්න්

6

මෙම අර්ථයන්:

401 : පරිශීලකයා (නිවැරදිව) සත්‍යාපනය කර නැත, සම්පත් / පිටුවට සත්‍යාපනය අවශ්‍ය වේ

403 : පරිශීලකයා සත්‍යාපනය කර ඇත, නමුත් ඔහුගේ භූමිකාව හෝ අවසරයන් ඉල්ලූ සම්පත් වෙත ප්‍රවේශ වීමට ඉඩ නොදේ, උදාහරණයක් ලෙස පරිශීලකයා පරිපාලකයෙකු නොවන අතර ඉල්ලූ පිටුව පරිපාලකයින් සඳහා වේ


මෙය මෙම ප්‍රශ්නයට විශිෂ්ට TLDR පිළිතුරකි.
කෞෂා

5

මෙහි ඕනෑම තැනකට වඩා මෙය මගේ හිසෙහි සරල ය, එබැවින්:

401: මෙය බැලීමට ඔබට HTTP මූලික සත්‍යාපනය අවශ්‍ය වේ.

403: ඔබට මෙය නොපෙනෙන අතර HTTP මූලික සත්‍යාපනය උදව් නොකරයි.

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

වැනි දේ සඳහා ප්‍රවේශය ප්‍රතික්ෂේප කිරීමට මම 403 භාවිතා කිරීම නිර්දේශ නොකරමි /includes, මන්ද වෙබය සම්බන්ධයෙන් ගත් කල, එම සම්පත් කිසිසේත්ම නොපවතින බැවින් 404 විය යුතුය.

මෙය 403 "ඔබ පිවිසිය යුතුය" ලෙස තබයි.

වෙනත් වචන වලින් කිවහොත්, 403 යන්නෙහි තේරුම "මෙම සම්පතට HTTP මූලික සත්‍යාපනය හැර වෙනත් ආකාරයක සත්‍යාපනයක් අවශ්‍ය වේ" යන්නයි.

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2


5

බ්‍රවුසරයක් සඳහා 401 පරිශීලකයාට නව අක්තපත්‍ර ඇතුළත් කිරීම සඳහා සත්‍යාපන සංවාදයක් ආරම්භ කරන අතර 403 එසේ නොවේ. බ්‍රව්සර් සිතන්නේ 401 ආපසු ලබා දෙන්නේ නම් පරිශීලකයා නැවත සත්‍යාපනය කළ යුතු බවයි. එබැවින් 401 යනු අවලංගු සත්‍යාපනය සඳහා වන අතර 403 යනු අවසරය නොමැතිකමයි.

වැදගත් වාක්‍ය ඛණ්ඩ නිර්භීතව සත්‍යාපනයෙන් හෝ අවසරයකින් දෝෂයක් ආපසු ලබා දෙන අවස්ථා කිහිපයක් එම තර්කනය යටතේ ඇත.

  • ඒ සම්පත් සත්යාපන අවශ්ය නමුත් කිසිදු අක්තපත්ර ලදී දක්වා .

401 : සේවාදායකයා අක්තපත්‍ර නියම කළ යුතුය.

  • නිශ්චිත අක්තපත්‍ර අවලංගු ආකෘතියක ඇත.

400 : එය 401 හෝ 403 නොවේ, සින්ටැක්ස් දෝෂ සෑම විටම 400 ක් ආපසු ලබා දිය යුතුය.

  • නිශ්චිත අක්තපත්‍ර වල නොපවතින පරිශීලකයෙකු සඳහන් කරයි .

401 : සේවාදායකයා වලංගු අක්තපත්‍ර නියම කළ යුතුය.

  • නිශ්චිත අක්තපත්‍ර වේ අවලංගු නමුත් වලංගු පරිශීලක නියම (හෝ විශේෂි ලෙස නිරූපිත පරිශීලක අවශ්ය නොවේ නම්, පරිශීලක නියම කරන්නේ නැහැ).

401 : නැවතත්, සේවාදායකයා වලංගු අක්තපත්‍ර නියම කළ යුතුය.

  • නිශ්චිත අක්තපත්‍ර ඇත කල් ඉකුත් .

401 යි : මෙය සාමාන්‍යයෙන් වලංගු නොවන අක්තපත්‍ර තිබීම හා සමාන වේ, එබැවින් සේවාදායකයා වලංගු අක්තපත්‍ර නියම කළ යුතුය.

  • නිශ්චිත අක්තපත්ර සම්පූර්ණයෙන්ම වලංගු වන නමුත් විශේෂිත ප්රමාණවත් නොවේ සම්පත් ප්‍රමාණයක් සහිත අක්තපත්‍ර ලබා ගත හැකි වුවද, සම්පත .

403 යි : වලංගු අක්තපත්‍ර සඳහන් කිරීමෙන් සම්පතට ප්‍රවේශය ලබා නොදෙනු ඇත, මන්ද වර්තමාන අක්තපත්‍ර දැනටමත් වලංගු නමුත් අවසරයක් නොමැති නිසාය.

  • විශේෂයෙන් සම්පත් වේ ඇද හැලුණු නොතකා අක්තපත්ර.

403 යි : මෙය අක්තපත්‍ර නොසලකා, එබැවින් වලංගු අක්තපත්‍ර නියම කිරීම උපකාරී නොවේ.

  • නිශ්චිත අක්තපත්ර සම්පූර්ණයෙන්ම වලංගු නමුත්, විශේෂයෙන් සේවාදායකයා ඇත අවහිර ඒවා භාවිතා ලැබේ.

403 : සේවාදායකයා අවහිර කර ඇත්නම්, නව අක්තපත්‍ර සඳහන් කිරීමෙන් කිසිවක් සිදු නොවේ.


4

ඉංග්රීසි භාෂාවෙන්:

401 යි

ඔබට ප්‍රවේශ වීමට ඉඩ ඇති නමුත් කිසියම් හේතුවක් නිසා මෙම ඉල්ලීම මත ඔබව ප්‍රතික්ෂේප කරන ලදි. නරක මුරපදයක් වැනි? නැවත උත්සාහ කරන්න, නිවැරදි ඉල්ලීම සමඟ ඔබට ඒ වෙනුවට සාර්ථක ප්‍රතිචාරයක් ලැබෙනු ඇත.

403 යි

ඔබට කිසි විටෙකත් අවසර නැත. ඔබගේ නම ලැයිස්තුවේ නොමැත, ඔබ කිසි විටෙකත් ඇතුළට නොයනු ඇත, යන්න, නැවත උත්සාහ කිරීමේ ඉල්ලීමක් එවන්න එපා, එය ප්‍රතික්ෂේප කරනු ලැබේ, සෑම විටම. අහකට යන්න.


1

මේ සම්බන්ධයෙන් නවතම RFC හි ( 7231 සහ 7235 ) සලකා බැලීමේදී, භාවිතයේ අවස්ථාව පැහැදිලිව පෙනේ (ඇල අකුරු එකතු කරන ලදි):

  • 401 සඳහා unauthenticated ( "වලංගු සත්යාපන තොර"); එනම් 'ඔබ කවුදැයි මම නොදනිමි, නැතහොත් ඔබ කවුරුන්දැයි ඔබ විශ්වාස කරන බව මම විශ්වාස නොකරමි.'

401 අනවසර

401 (අනවසර) තත්ව කේතය පෙන්නුම් කරන්නේ ඉලක්කගත සම්පත සඳහා වලංගු සත්‍යාපන අක්තපත්‍ර නොමැති නිසා ඉල්ලීම අදාළ නොවන බවයි . 401 ප්‍රතිචාරයක් ජනනය කරන සේවාදායකයා ඉලක්කගත සම්පතට අදාළ වන අවම වශයෙන් එක් අභියෝගයක්වත් අඩංගු WWW- සත්‍යාපන ශීර්ෂ ක්ෂේත්‍රය (4.1 වගන්තිය) යැවිය යුතුය.

ඉල්ලීමට සත්‍යාපන අක්තපත්‍ර ඇතුළත් නම්, 401 ප්‍රතිචාරයෙන් පෙන්නුම් කරන්නේ එම අක්තපත්‍ර සඳහා අවසර දීම ප්‍රතික්ෂේප කර ඇති බවයි. පරිශීලක නියෝජිතයා නව හෝ ප්‍රතිස්ථාපනය කළ බලය පැවරීමේ ශීර්ෂ ක්ෂේත්‍රයක් සමඟ ඉල්ලීම නැවත කරයි (4.2 කොටස). 401 ප්‍රතිචාරයේ පෙර ප්‍රතිචාරයට සමාන අභියෝගයක් තිබේ නම් සහ පරිශීලක නියෝජිතයා දැනටමත් අවම වශයෙන් එක් වරක්වත් සත්‍යාපනය කිරීමට උත්සාහ කර ඇත්නම්, පරිශීලක නියෝජිතයා විසින් අදාළ රෝග විනිශ්චය තොරතුරු අඩංගු බැවින් පරිශීලකයාට සංවෘත නිරූපණය ඉදිරිපත් කළ යුතුය.

  • 403 අනවසර සඳහා ("අවසර දීම ප්‍රතික්ෂේප කරයි"); එනම් 'ඔබ කවුදැයි මම දනිමි, නමුත් ඔබට මෙම සම්පතට ප්‍රවේශ වීමට අවසර නැත.'

403 තහනම්

403 (තහනම්) තත්ව කේතය මඟින් සේවාදායකයා ඉල්ලීම තේරුම් ගත් නමුත් අවසර දීම ප්‍රතික්ෂේප කරයි එය . ඉල්ලීම තහනම් කර ඇත්තේ මන්දැයි ප්‍රසිද්ධ කිරීමට අපේක්ෂා කරන සේවාදායකයෙකුට එම හේතුව ප්‍රතිචාර ගෙවීමේදී (ඇත්නම්) විස්තර කළ හැකිය.

ඉල්ලීමෙහි සත්‍යාපන අක්තපත්‍ර ලබා දී ඇත්නම්, ප්‍රවේශය ලබා දීමට ඒවා ප්‍රමාණවත් නොවන බව සේවාදායකයා සලකයි. සේවාදායකයා එම අක්තපත්‍ර සමඟ ඉල්ලීම ස්වයංක්‍රීයව පුනරාවර්තනය නොකළ යුතුය. සේවාදායකයා නව හෝ වෙනස් අක්තපත්‍ර සමඟ ඉල්ලීම නැවත කළ හැකිය. කෙසේ වෙතත්, අක්තපත්‍ර හා සම්බන්ධ නොවන හේතු නිසා ඉල්ලීමක් තහනම් කළ හැකිය.

තහනම් ඉලක්කගත සම්පතක වර්තමාන පැවැත්ම "සැඟවීමට" කැමති ප්‍රභව සේවාදායකයක් ඒ වෙනුවට 404 තත්ව කේතය සමඟ ප්‍රතිචාර දක්වයි (හමු නොවීය).


2
-1; මෙම ඡේද දැනටමත් මෙහි වෙනත් පිළිතුරු වලින් උපුටා දක්වා ඇති අතර, ඔබේ ඒවා අලුත් කිසිවක් එකතු නොකරයි. වෙනස කුමක්ද යන්න පැහැදිලිවම පැහැදිලි නැති බව මම තර්ක කරමි ; ඔබ කේත දෙක සාරාංශගත කරන්නේ “වලංගු සත්‍යාපනයක් නොමැති” සහ “බලය පැවරීම ප්‍රතික්ෂේප කරන” නමුත් එම කෙටි විස්තර වලින් එකක් අදාළ වන වෙනත් තත්වයක් ද අර්ථ දැක්විය නොහැකි තැනක් ගැන මට සිතාගත නොහැකිය.
අමරි

බොහෝ RFC හි ආවරණය වන පරිදි පිළිතුරු බොහොමයක් මෙහි ඇති අතර ඒවා සංස්කරණය කර යාවත්කාලීන කර ඇත. යෙදුම පැහැදිලි වන පරිදි යල් පැන ගිය RFC සියල්ලම authenticatedකුමක්ද සහ කුමක්ද authorizedයන්න පැහැදිලි කිරීමට මම සබැඳියක් ඇතුළත් කළෙමි .
cjbarth

ඔබේ සංස්කරණය මඟින් කේත දෙක පිළිබඳ ඔබේ අර්ථ නිරූපණය පැහැදිලි කරයි, එය වෙනත් බොහෝ අයගේ අර්ථ නිරූපණයට ගැලපෙන බව පෙනේ. කෙසේ වෙතත්, මම පෞද්ගලිකව විශ්වාස කරන්නේ අර්ථ නිරූපණය එතරම් තේරුමක් නැති බවය. 403 විස්තරයේ “සත්‍යාපන අක්තපත්‍ර ලබා දී ඇත්නම් යන වාක්‍ය ඛණ්ඩය භාවිතා කිරීමෙන් ඇඟවෙන්නේ කිසිදු අක්තපත්‍රයක් ලබා දී නොමැති වුවද 403 සුදුසු විය හැකි බවයි - එනම් “සත්‍යාපනය නොකළ” නඩුව. මේ අතර, 401 විස්තරයට ඇතුළත් කර ඇති “ඉලක්කගත සම්පත් සඳහා” යන වාක්‍ය ඛණ්ඩයේ වඩාත් ස්වාභාවික අර්ථ නිරූපණය නම්, සත්‍යාපනය කළ නමුත් බලයලත් නොවන පරිශීලකයෙකු සඳහා 401 භාවිතා කළ හැකි බවයි.
මාර්ක් අමරි

-6

401 එදිරිව 403 සම්බන්ධයෙන්, මෙය බොහෝ වාර ගණනක් පිළිතුරු සපයා ඇත. මෙය අත්‍යවශ්‍යයෙන්ම 'HTTP ඉල්ලීම් පරිසරය' විවාදයක් මිස 'යෙදුම්' විවාදයක් නොවේ.

රෝල්-ඔබේ-පිවිසුම් ගැටලුව (යෙදුම) පිළිබඳ ප්‍රශ්නයක් ඇති බව පෙනේ.

මෙම අවස්ථාවෙහිදී, ඔබ HTTP Auth එදිරිව පිවිසුම් පිටුවක් භාවිතා නොකරන්නේ නම් (HTTP Auth සැකසීමට බැඳී නැත) 401 හෝ 403 යැවීමට ප්‍රමාණවත් නොවේ. ගොනුවකට යෙදුම් මට්ටමේ ප්‍රවේශය සඳහා ඔබ විසින් "201 නිර්මාණය කරන ලද" එකක් සොයන බවක් පෙනේ, ඔබේම පිවිසුම් තිරයක් (ඉල්ලූ සම්පත වෙනුවට) ඇත. මෙය මෙසේ පවසයි:

"මම ඔබට ඇහුම්කන් දුන්නා, එය මෙහි ඇත, නමුත් ඒ වෙනුවට මෙය උත්සාහ කරන්න (ඔබට එය බැලීමට අවසර නැත)"


නිර්මාණය වන්නේ හරියටම කුමක්ද?
ග්‍රාන්ට් ග්‍රිසන්
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.