403 নিষিদ্ধ বনাম 401 অননুমোদিত HTTP প্রতিক্রিয়া


2780

যে ওয়েবপৃষ্ঠা বিদ্যমান রয়েছে তার জন্য, তবে যার জন্য ব্যবহারকারীর পর্যাপ্ত অধিকার নেই (তারা লগ ইন করেন নি বা সঠিক ব্যবহারকারী গোষ্ঠীর অন্তর্ভুক্ত নয়), সঠিক HTTP প্রতিক্রিয়া কী?

401 Unauthorized?
403 Forbidden?
অন্যকিছু?

আমি এখন পর্যন্ত প্রত্যেকটিতে যা পড়েছি তা উভয়ের মধ্যে পার্থক্য সম্পর্কে খুব স্পষ্ট নয়। কোন প্রতিক্রিয়া জন্য উপযুক্ত ক্ষেত্রে উপযুক্ত?


357
401 'অননুমোদিত' হওয়া উচিত 401 'অননুমোদিত', সমস্যা সমাধান!
ক্রিস্টোফ রাউসি

47
আমি মনে করি না যে আমি এবং আমার সহকর্মীরা এই প্রশ্নের জন্য কতবার স্ট্যাকওভারফ্লোতে ফিরে এসেছি। হতে পারে এইচটিটিপি মান 401 এবং 403 এর জন্য নাম বা বিবরণ পরিবর্তন করতে বিবেচনা করা উচিত।
নিউরাইট

আসলে, আমি এই ত্রুটির একটি আলাদা সংস্করণ পাচ্ছি। "os_authType ছিল 'কোনও' এবং একটি অবৈধ কুকি প্রেরণ করা হয়েছিল"। কীভাবে সমাধান করা যায় তা বুঝতে ব্যর্থ। প্রচুর সময় গুগল করেছেন, কারণ পেয়েছেন তবে সমাধান পাননি।
সন্দীপ আনন্দ

@ কিওয়ার্টি নং, নতুন আরএফসি 7231 আরএফসি 2616 কে বাতিল করেছে। 403 এর আলাদা অর্থ এখন।
ফিশবোনের

1
@ ফিশবোন আপনিও খেয়াল করেন নি যে স্থিতি কোড 401 that আরএফসি থেকে অপসারণ করা হয়েছে: ডি
বার্কার্ম্ন

উত্তর:


4106

ড্যানিয়েল ইরভিনের একটি স্পষ্ট ব্যাখ্যা :

401 অননুমোদিত , প্রমাণীকরণের ত্রুটির জন্য HTTP স্থিতি কোড নিয়ে একটি সমস্যা রয়েছে । এবং এটি ঠিক এটি: এটি অনুমোদনের জন্য, অনুমোদনের জন্য নয়। একটি 401 প্রতিক্রিয়া প্রাপ্ত হ'ল সার্ভারটি আপনাকে বলছে, "আপনি সত্যায়িত নন। হয় মোটেই প্রমাণীকৃত হন না বা ভুলভাবে প্রমাণীকৃত হন – তবে দয়া করে পুনরায় প্রমাণীকরণ করুন এবং আবার চেষ্টা করুন।" আপনাকে সাহায্য করার জন্য, এটি সর্বদা একটি ডাব্লুডাব্লুডাব্লু-প্রমাণীকরণ শিরোনামকে অন্তর্ভুক্ত করবে যা কীভাবে প্রমাণীকরণ করতে হবে তা বর্ণনা করে।

এটি আপনার ওয়েব অ্যাপ্লিকেশন নয়, সাধারণত আপনার ওয়েব সার্ভার দ্বারা প্রত্যাবর্তিত প্রতিক্রিয়া।

এটি খুব সাময়িক কিছু; সার্ভার আপনাকে আবার চেষ্টা করতে বলছে।

সুতরাং, অনুমোদনের জন্য আমি 403 নিষিদ্ধ প্রতিক্রিয়া ব্যবহার করি । এটি স্থায়ী, এটি আমার অ্যাপ্লিকেশন লজিকের সাথে আবদ্ধ এবং এটি 401 এর চেয়ে বেশি শক্তিশালী প্রতিক্রিয়া।

403 টি প্রতিক্রিয়া পাওয়া সার্ভারটি আপনাকে বলছে, "আমি দুঃখিত। আমি জানি আপনি কে – আমি বিশ্বাস করি আপনি কে বলেছিলেন are তবে আপনার কেবল এই সংস্থানটি অ্যাক্সেস করার অনুমতি নেই। আপনি যদি সিস্টেম প্রশাসককে সুন্দরভাবে জিজ্ঞাসা করেন তবে আপনি অনুমতি পাবেন। তবে দয়া করে আপনার দুর্দশার পরিবর্তন না হওয়া পর্যন্ত আমাকে আর বিরক্ত করবেন না। "

সংক্ষেপে, 401 অননুমোদিত প্রতিক্রিয়া অনুপস্থিত বা খারাপ প্রমাণীকরণের জন্য ব্যবহার করা উচিত এবং 403 নিষিদ্ধ প্রতিক্রিয়াটি পরে ব্যবহার করা উচিত, যখন ব্যবহারকারী অনুমোদনপ্রাপ্ত হয় তবে প্রদত্ত উত্সটিতে অনুরোধিত ক্রিয়াকলাপটি চালানোর জন্য অনুমোদিত না হয়।

HTTP স্থিতি কোডগুলি কীভাবে ব্যবহার করা উচিত তার আরেকটি সুন্দর চিত্রযুক্ত বিন্যাস

এখানে চিত্র বর্ণনা লিখুন


43
ডিফল্ট আইআইএস 403 বার্তাটি "এটি জেনেরিক 403 ত্রুটি এবং এর অর্থ প্রমাণীকৃত ব্যবহারকারী পৃষ্ঠাটি দেখার অনুমতিপ্রাপ্ত নয়", যা সম্মত বলে মনে হচ্ছে।
বেন চ্যালেঞ্জার

332
@ জেপিআরডি আপনার উত্তরটি সঠিক। তবে, আমি প্রত্যাশা করব যে 401 এর নাম "অননুমোদিত" এবং 403 নামকরণ করা হবে "অননুমোদিত"। এটি খুব বিভ্রান্তিকর যে 401, যা প্রমাণীকরণের সাথে সম্পর্কিত, এর সাথে "অননুমোদিত" পাঠ্য সহ ফর্ম্যাট রয়েছে .... যদি না আমি ইংরেজিতে ভাল না হই (যা বেশ সম্ভাবনা)।
p.matsinopoulos

64
@ জায়েদমাসুদ, আরএফসি অনুসারে এই ব্যাখ্যাটি সঠিক নয়। কুম্বায়াহর উত্তর ঠিকই পেল। 401 এর অর্থ "আপনি সঠিক অনুমোদনটি মিস করছেন"। এটি বোঝায় যে "যদি আপনি চান আপনি নিজের প্রমাণীকরণের চেষ্টা করতে পারেন"। সুতরাং উভয় ক্লায়েন্ট যিনি নিজেকে সঠিকভাবে প্রমাণীকরণ করেননি এবং যথাযথভাবে প্রমাণীকৃত ক্লায়েন্টের অনুমোদন অনুপস্থিত রয়েছে তারা 401 পাবেন means 403 এর অর্থ "আপনি যারাই হোন আমি এর উত্তর দেব না"। আরএফসি স্পষ্টভাবে বলেছে যে 403 ক্ষেত্রে "অনুমোদন সাহায্য করবে না"
ডেভিড আর

84
401 প্রমাণীকরণের ত্রুটি, 403 অনুমোদনের ত্রুটি। যে হিসাবে সহজ।
শাহরিয়ার ইমানভ

30
তার ব্লগ পোস্ট থেকে অনুলিপি করার সময় এবং "দুর্ভাগ্যক্রমে তার দৃষ্টিভঙ্গি ভুল হয়েছে" তখন আপনি "আচ্ছা এটির বিষয়ে আমার দৃষ্টিভঙ্গি যাইহোক :) ছেড়ে গিয়েছিল। 403 অন্যেরা যেমন বলেছে তার অর্থ আপনি কার হিসাবে অনুমোদনপ্রাপ্ত তা নির্বিশেষে আপনি সংস্থানটি অ্যাক্সেস করতে পারবেন না। আমি সাধারণত এই ওয়েব সাইটটিতে আইপি অ্যাড্রেস রেঞ্জ বা ফাইলগুলি দ্বারা লকড থাকা সংস্থাগুলির জন্য এই স্থিতি কোডটি ব্যবহার করি যা আমি সরাসরি অ্যাক্সেস চাই না (অর্থাত কোনও স্ক্রিপ্ট অবশ্যই তাদের পরিবেশন করতে পারে)।
কাইল

402

আরএফসি 2616 দেখুন :

401 অননুমোদিত:

যদি অনুরোধটিতে ইতিমধ্যে অনুমোদনের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে তবে 401 প্রতিক্রিয়াটি নির্দেশ করে যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে।

403 নিষিদ্ধ:

সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে।

হালনাগাদ

আপনার ব্যবহারের কেস থেকে, এটি প্রদর্শিত হয় যে ব্যবহারকারী প্রমাণীকৃত নয়। আমি 401 ফেরত দেব।


সম্পাদনা করুন: আরএফসি 2616 অপ্রচলিত, দেখুন আরএফসি 7231 এবং আরএফসি 7235


21
ধন্যবাদ, এটি আমার পক্ষে এটি পরিষ্কার করতে সহায়তা করেছিল। আমি উভয়ই ব্যবহার করছি - 401 অননুমোদিত ব্যবহারকারীদের জন্য, 403 অপর্যাপ্ত অনুমতি সহ অনুমোদনপ্রাপ্ত ব্যবহারকারীদের জন্য।
ভার্চুসিমিডিয়া

52
আমি ডাউনওয়েট করি নি তবে আমি এই উত্তরটি বেশ বিভ্রান্তিকর পেয়েছি। 403 নিষিদ্ধ সামগ্রীটি যথাযথভাবে ব্যবহার করা হয় যা কখনই পরিবেশন করা হবে না (যেমন এসপনেটে। কনফিগ ফাইলগুলি)। এটি হয় বা একটি 404. তবে, অ্যাক্সেস করা যায় এমন কোনও কিছুর জন্য 403 ফিরিয়ে দেওয়া ঠিক হবে না তবে আপনার কাছে সঠিক শংসাপত্র নেই। আমার সমাধান হ'ল শংসাপত্রগুলি পরিবর্তন করার উপায় সহ একটি অ্যাক্সেস অস্বীকৃত বার্তা দেওয়া। এটি বা একটি 401.
মেল

27
"প্রতিক্রিয়াটির মধ্যে একটি ডাব্লুডাব্লুডাব্লু-প্রমাণীকরণের শিরোনাম ক্ষেত্র অন্তর্ভুক্ত থাকতে হবে (অনুচ্ছেদ 14.47) যা অনুরোধকৃত উত্সের ক্ষেত্রে প্রযোজ্য একটি চ্যালেঞ্জ রয়েছে" " দেখে মনে হচ্ছে আপনি যদি HTTP- শৈলীর প্রমাণীকরণ ব্যবহার করতে না চান তবে একটি 401 প্রতিক্রিয়া কোড যথাযথ নয়।
ব্রিলিয়ানড

8
আমি বিলিয়ন্ডকে এখানে ফিরিয়ে দেব। বিবৃতিটি "যদি অনুরোধটিতে ইতিমধ্যে অনুমোদনের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে"। এর অর্থ এটি যদি কোনও অনুরোধের প্রতিক্রিয়া হয় যা শংসাপত্র সরবরাহ করে (যেমন একটি আরএফসি 2617 প্রমাণীকরণের প্রচেষ্টা থেকে প্রতিক্রিয়া)। এটি "সার্ভারকে খারাপ অ্যাকাউন্ট / পাসওয়ার্ডের জোড়, আবার চেষ্টা করুন" বলার অনুমতি দেয়। উত্থাপিত প্রশ্নে, ব্যবহারকারী সম্ভবত প্রমাণীকৃত তবে অনুমোদিত নয়। 401 এই পরিস্থিতিতে কখনই উপযুক্ত প্রতিক্রিয়া নয়।
ldrut

6
ব্রিলিয়ানড ঠিক, 401 কেবলমাত্র HTTP প্রমাণীকরণের জন্য উপযুক্ত।
জুম্পি

296

অন্য উত্তরগুলির অনুপস্থিত কিছু হ'ল এটি অবশ্যই বুঝতে হবে যে আরএফসি 2616 এর প্রসঙ্গে প্রমাণীকরণ এবং অনুমোদন কেবলমাত্র আরএফসি 2617 এর HTTP প্রমাণীকরণ প্রোটোকলকে বোঝায় R 401 বা 403 ব্যবহার করবেন কিনা তা সিদ্ধান্ত নেওয়ার সময়।

সংক্ষিপ্ত এবং সংশ্লেষ

অননুমোদিত ইঙ্গিত দেয় যে ক্লায়েন্টটি আরএফসি 2617 অনুমোদিত নয় এবং সার্ভার প্রমাণীকরণ প্রক্রিয়া শুরু করছে init নিষেধাজ্ঞাটি নির্দেশ করে যে ক্লায়েন্টটি আরএফসি 2617 প্রমাণীকৃত এবং এর অনুমোদন নেই বা সার্ভারটি অনুরোধ করা সংস্থার জন্য আরএফসি 2617 সমর্থন করে না।

অর্থ যদি আপনার নিজস্ব রোল-আপনার নিজস্ব লগইন প্রক্রিয়া থাকে এবং কখনও এইচটিটিপি প্রমাণীকরণ ব্যবহার না করে, 403 সর্বদা যথাযথ প্রতিক্রিয়া হয় এবং 401 কখনই ব্যবহার করা উচিত নয়।

বিস্তারিত এবং গভীরতা

আরএফসি 2616 থেকে

10.4.2 401 অননুমোদিত

অনুরোধটির ব্যবহারকারীর প্রমাণীকরণ প্রয়োজন। প্রতিক্রিয়া আবশ্যক একটি WWW- প্রমাণীকরণ শিরোনাম ক্ষেত্র অন্তর্ভুক্ত করা উচিত (বিভাগ 14.47) অনুরোধ উত্স উপর প্রযোজ্য একটি চ্যালেঞ্জ। ক্লায়েন্ট MAY উপযুক্ত অনুমোদনের শিরোনাম ক্ষেত্র (বিভাগ 14.8) দিয়ে অনুরোধটি পুনরাবৃত্তি করতে পারে।

এবং

10.4.4 403 নিষিদ্ধ সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে। অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়।

মনে রাখবেন প্রথম জিনিসটি এই নথির প্রসঙ্গে "প্রমাণীকরণ" এবং "অনুমোদন" হ'ল বিশেষত আরএফসি 2617 এর HTTP প্রমাণীকরণ প্রোটোকলগুলিকে উল্লেখ করে They তারা আপনার তৈরি কোনও রোল আপনার নিজের প্রমাণীকরণ প্রোটোকলগুলিকে উল্লেখ করে না লগইন পৃষ্ঠাগুলি ইত্যাদি ব্যবহার করে আমি আরএফসি 2617 ব্যতীত অন্য পদ্ধতি দ্বারা প্রমাণীকরণ এবং অনুমোদনের উল্লেখ করতে "লগইন" ব্যবহার করব

সুতরাং আসল পার্থক্যটি সমস্যাটি কী তা নয় বা সমাধান থাকলেও তা নয়। পার্থক্যটি হ'ল সার্ভারটি ক্লায়েন্টের পরবর্তী কাজটি করবে।

401 সূচিত করে যে সংস্থানটি সরবরাহ করা যাবে না, তবে সার্ভারটি অনুরোধ করছে যে ক্লায়েন্টটি HTTP প্রমাণীকরণের মাধ্যমে লগ ইন করে এবং প্রক্রিয়াটি শুরু করার জন্য উত্তর শিরোনাম প্রেরণ করেছে। সম্ভবত এমন অনুমোদন রয়েছে যা সংস্থানটিতে অ্যাক্সেসের অনুমতি দেবে, সম্ভবত সেখানে নেই, তবে আসুন এটি চেষ্টা করে দেখি কী হয়।

403 নির্দেশ করে যে সংস্থানটি সরবরাহ করা যায় না এবং বর্তমান ব্যবহারকারীর জন্য আরএফসি 2617 এর মাধ্যমে এটি সমাধান করার কোনও উপায় নেই এবং চেষ্টা করার কোনও অর্থ নেই। এটি হতে পারে কারণ এটি পরিচিত যে কোনও প্রমাণীকরণের স্তর পর্যাপ্ত নয় (উদাহরণস্বরূপ আইপি ব্ল্যাকলিস্টের কারণে), তবে এটি এমন হতে পারে যে ব্যবহারকারী ইতিমধ্যে প্রমাণীকৃত এবং এর কর্তৃপক্ষের নেই। আরএফসি 2617 মডেলটি এক-ব্যবহারকারী, এক শংসাপত্রস্বরূপ যাতে ব্যবহারকারীর কাছে অনুমোদিত হতে পারে এমন দ্বিতীয় শংসাপত্রগুলির ক্ষেত্রে সেটিকে উপেক্ষা করা যেতে পারে। এটি কোনও রকম লগইন পৃষ্ঠা বা অন্য অ-আরএফসি 2626 প্রমাণীকরণের প্রোটোকলকে সহায়তা করতে পারে বা নাও পারে - এটিকে আরএফসি 2616 মান এবং সংজ্ঞার বাইরে sugges


সম্পাদনা করুন: আরএফসি 2616 অপ্রচলিত, দেখুন আরএফসি 7231 এবং আরএফসি 7235


7
সুতরাং যখন ব্যবহারকারী কোনও পৃষ্ঠা-র জন্য অনুরোধ জানায় যেখানে এইচটি-পি-পি-তে প্রমাণীকরণের প্রয়োজন নেই তখন আমাদের কী করা উচিত? স্থিতি কোড 403 পাঠাবেন?
marcovtwout

2
এটিই উত্তর যা পার্থক্য সম্পর্কে আমার প্রশ্নের উত্তর দিয়েছে।
প্যাট্রিক

9
এটি গুরুত্বপূর্ণ: "যদি আপনার নিজস্ব রোল-আপনার নিজস্ব লগইন প্রক্রিয়া থাকে এবং কখনও এইচটিটিপি প্রমাণীকরণ ব্যবহার না করে, 403 সর্বদা সঠিক প্রতিক্রিয়া হয় এবং 401 কখনই ব্যবহার করা উচিত নয়।"
জিজিজি

1
@marcovtwout আপনার লগইন-পৃষ্ঠাতে একটি 302, বা 403 এর সাথে একটি দেহযুক্ত একটি 403 পাঠান কীভাবে লগ ইন করবেন?
অ্যালেক্স

4
আরএফসি 7235 "নিজের নিজের রোল" বা বিকল্প লেখার চ্যালেঞ্জগুলির জন্য সরবরাহ করে না? আমার অ্যাপ্লিকেশনটির লগইন প্রবাহ কেন WWW-Authenticateশিরোনাম আকারে তার চ্যালেঞ্জটি উপস্থাপন করতে পারে না ? এমনকি যদি কোনও ব্রাউজার এটি সমর্থন না করে তবে আমার প্রতিক্রিয়া অ্যাপ্লিকেশনটি পারে ...

127
  + + -----------------------
  | উত্স বিদ্যমান? (প্রাইভেট থাকলে প্রায়শই লেখকের পরে চেক করা হয়)
  + + -----------------------
    | |
 না | v হ্যাঁ
    v + -----------------------
   404 | লগ-ইন হয়? (সত্যায়িত, ওরফে সেশন বা জেডাব্লুটি কুকি রয়েছে)
   বা + -----------------------
   401 | |
   403 কোন | | হ্যাঁ
   3xx ভিভি
              401 + -----------------------
       (404 প্রকাশ নেই) | উত্স অ্যাক্সেস করতে পারেন? (অনুমতি, অনুমোদিত, ...)
              বা + -----------------------
             পুনর্নির্দেশ | |
             লগইন না | | হ্যাঁ
                               | |
                               VV
                               403 ঠিক 200, পুনর্নির্দেশ, ...
                      (বা 404: প্রকাশ নেই)
                      (বা 404: ব্যক্তিগত থাকলে রিসোর্সের অস্তিত্ব নেই)
                      (বা 3xx: পুনঃনির্দেশ)

চেকগুলি সাধারণত এই ক্রমে করা হয়:

  • 404 যদি উত্সটি সর্বজনীন হয় এবং এটি বিদ্যমান না বা 3xx পুনঃনির্দেশ
  • অন্যথায়:
  • 401 লগ ইন না হলে বা সেশনটির মেয়াদ শেষ হয়ে গেছে
  • 403 যদি ব্যবহারকারীর সংস্থান অ্যাক্সেসের অনুমতি না থাকে (ফাইল, জসন, ...)
  • 404 যদি সংস্থান উপস্থিত না থাকে বা কিছু প্রকাশ করতে ইচ্ছুক না হয় বা 3xx পুনঃনির্দেশ

অদক্ষিত : স্থিতি কোড (401) নির্দেশিত যে অনুরোধটির প্রমাণীকরণ প্রয়োজন , সাধারণত এর অর্থ ব্যবহারকারীকে লগ-ইন করা (সেশন) প্রয়োজন। ব্যবহারকারী / এজেন্ট সার্ভার দ্বারা অজানা। অন্যান্য শংসাপত্রগুলির সাথে পুনরাবৃত্তি করতে পারে। দ্রষ্টব্য: এটি বিভ্রান্তিকর কারণ এটির 'অননুমোদিত' পরিবর্তে 'অযৌক্তিক' নামকরণ করা উচিত। সেশনটির মেয়াদ শেষ হয়ে গেলে লগইন করার পরে এটিও ঘটতে পারে। বিশেষ কেস: উত্সাহ উপস্থিতি বা অ-উপস্থিতি প্রকাশের এড়াতে 404 এর পরিবর্তে ব্যবহার করা যেতে পারে (ক্রেডিটগুলি @ জিনজারকোডিনিজা)

ফরবিডেন : স্থিতি কোড (403) নির্দেশ করে যে সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করেছে। ব্যবহারকারী / এজেন্ট সার্ভার দ্বারা পরিচিত কিন্তু পর্যাপ্ত শংসাপত্র রয়েছে । পুনরাবৃত্তি অনুরোধ কাজ করবে না, যদি না শংসাপত্রগুলি পরিবর্তন হয়, যা খুব অল্প সময়ের মধ্যে খুব কমই থাকে। বিশেষ কেস: উত্সাহ উপস্থিতি বা অ-উপস্থিতি প্রকাশের এড়াতে 404 এর পরিবর্তে ব্যবহার করা যেতে পারে (ক্রেডিটগুলি @ জিনজারকোডিনিজা)

ফাউন্ড না : স্থিতি কোড (404) নির্দেশিত সংস্থানটি উপলব্ধ নয় বলে উল্লেখ করে। ব্যবহারকারী / এজেন্ট পরিচিত তবে সার্ভারটি রিসোর্সটি সম্পর্কে কিছুই প্রকাশ করবে না, যেমন এটি বিদ্যমান না বলেই করে। পুনরাবৃত্তি কাজ করবে না। এটি 404 এর একটি বিশেষ ব্যবহার (উদাহরণস্বরূপ গিথুব এটি করে)।

@ ক্রিসএইচ দ্বারা উল্লিখিত হিসাবে পুনর্নির্দেশ 3xx (301, 302, 303, 307 বা একেবারে পুনর্নির্দেশ না করা এবং 401 ব্যবহার করার জন্য) কয়েকটি বিকল্প রয়েছে :


উদাহরণস্বরূপ আমি লগ ইন করেছি এবং আমি একটি পৃষ্ঠা অ্যাক্সেস করতে পারি তবে এটি আমার পক্ষে অনুমতি সক্ষম করে না। কোন স্থিতি কোড ফিরে আসবে?
বারটেলোমা

@ বুকমার্কার লগগইনকে প্রমাণীকরণ বলা হয়, এটি প্রথম পদক্ষেপ। সুতরাং লগ ইন করার পরে যদি আপনার অনুমতি না থাকে তবে আপনি 403 নিষিদ্ধ পাবেন (অপর্যাপ্ত শংসাপত্রগুলির অর্থ আপনার কাছে পর্যাপ্ত অনুমতি নেই)।
ক্রিস্টোফ রাউসি

3
পরিষ্কার এবং সহজ ব্যাখ্যা। আমার যা দরকার ঠিক তাই
এস্তেভেজ

যদি ব্যবহারকারী লগ ইন বা লগ ইন না করে থাকেন তবে অনুমতি না থাকলে এবং সামগ্রীটিতে অবস্থানের অস্তিত্ব নেই, কখনও কখনও আপনি সম্ভবত 404 এর পরিবর্তে 401/403 ফিরিয়ে দিতে চান, যাতে আপনি কোনটি বা ইএসএন প্রকাশ করেন না সেখানে যদি ব্যবহারকারী সত্যায়িত না হয়ে এবং লগইন না করে থাকে তবে কিছু উপস্থিত রয়েছে তা জেনে রাখা কোনও কিছুর দিকে ইঙ্গিত দিতে পারে বা এনডিএ ভেঙে দিতে পারে। তাই কখনও কখনও এই চিত্রটির 404 অংশ লগ ইন / প্রমাণীকরণের নীচে সরানো উচিত।
gingerCodeNinja

1
@ ম্যাটকোচাজ নোট করুন যে কেসটি no revealকখনও কখনও সূক্ষ্ম সময় পার্থক্যের মাধ্যমে সনাক্ত করা যায় এবং এটি কোনও সুরক্ষা বৈশিষ্ট্য হিসাবে দেখা উচিত নয়, এটি আক্রমণকারীদের ধীর করে দিতে পারে বা গোপনীয়তার ক্ষেত্রে কিছুটা সহায়তা করতে পারে।
ক্রিস্টোফ রাউসি

113

মতে বোঝায় যা RFC 2616 (HTTP- র / 1.1) 403 পাঠানো হয় যখন:

সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে। অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়। যদি অনুরোধের পদ্ধতিটি হেড না হয় এবং সার্ভারটি কেন অনুরোধটি পূরণ করা হয়নি তা জনসাধারণের কাছে প্রকাশ করতে চায় তবে এটি সত্তায় অস্বীকার করার কারণটি বর্ণনা করতে হবে। সার্ভার যদি ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে না চায় তবে স্থিতি কোড 404 (পাওয়া যায়নি) পরিবর্তে ব্যবহার করা যেতে পারে

অন্য কথায়, যদি ক্লায়েন্ট প্রমাণীকরণের মাধ্যমে সংস্থানটিতে অ্যাক্সেস পেতে পারে, 401 প্রেরণ করা উচিত।


5
এবং তারা যদি অ্যাক্সেস করতে পারে কিনা তা যদি পরিষ্কার হয় না তবে? বলুন যে আমার কাছে 3 জন ব্যবহারকারী স্তর রয়েছে - পাবলিক, সদস্য এবং প্রিমিয়াম সদস্য। অনুমান করুন যে পৃষ্ঠাটি কেবল প্রিমিয়াম সদস্যদের জন্য। কোনও পাবলিক ব্যবহারকারী মূলত অ-প্রমাণিত হয় এবং তারা লগ ইন করার সময় সদস্য বা প্রিমিয়াম সদস্যদের মধ্যে থাকতে পারে the সদস্য ব্যবহারকারী স্তরের জন্য, 403 উপযুক্ত মনে হয়। প্রিমিয়াম সদস্যদের জন্য, 401. তবে, আপনি জনসাধারণকে কী পরিবেশন করেন?
ভার্চুসিমিডিয়া

27
imho, এটি সবচেয়ে সঠিক উত্তর। এটি অ্যাপ্লিকেশনটির উপর নির্ভর করে তবে সাধারণত, যদি কোনও সত্যায়িত ব্যবহারকারীর কোনও সংস্থার পর্যাপ্ত অধিকার না থাকে তবে আপনি শংসাপত্র পরিবর্তন করার জন্য বা একটি 401 প্রেরণ করার উপায় সরবরাহ করতে চাইতে পারেন I আমার ধারণা 403 কখনই পরিবেশিত হয়নি এমন সামগ্রীর পক্ষে সবচেয়ে উপযুক্ত। এ্যাসপিএন-তে এর অর্থ হবে ওয়েব কোডসিগ ফাইল * .resx ফাইল ইত্যাদি etc. কারণ যে কোনও ব্যবহারকারী লগইন করুন না কেন, এই ফাইলগুলি কখনই পরিবেশন করা হবে না যাতে আবার চেষ্টা করার কোনও অর্থ নেই।
মেল

6
+1, তবে একটি অনিশ্চিত +1। যৌক্তিক উপসংহারটি হ'ল 403 কে কখনই ফিরিয়ে দেওয়া উচিত নয় কারণ 401 বা 404 হয় কঠোরতর প্রতিক্রিয়া।
কার্টেনডগ

12
@ মেল আমি মনে করি যে ক্লায়েন্ট দ্বারা অ্যাক্সেস করা উচিত নয় এমন একটি ফাইলের 404 হওয়া উচিত It's এটি একটি ফাইল যা সিস্টেমের অভ্যন্তরীণ; বাইরের এমনকি এটি উপস্থিত আছে জানি না। একটি 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
যদিও এটি আমার কাছে মনে হচ্ছে এটি সম্ভবত পুরানো আরএফসি 2616 এর একটি সঠিক ব্যাখ্যা রয়েছে, মনে রাখবেন যে আরএফসি 7231 একটি 403 এর শব্দার্থকে আলাদাভাবে সংজ্ঞায়িত করেছে এবং প্রকৃতপক্ষে স্পষ্টতই বলেছে যে "ক্লায়েন্ট মায়া অনুরোধটিকে নতুন বা বিভিন্ন শংসাপত্রের সাথে পুনরাবৃত্তি করে।" সুতরাং এই উত্তরটি 2010 সালে সঠিক ছিল, এটি আজ সম্পূর্ণ ভুল, কারণ স্থিতির কোডটির অর্থ আমাদের পায়ের নীচে আবার লেখা হয়েছে। (বিরক্তিকরভাবে, আরএফসি 2616 পরিশিষ্টের পরিবর্তনগুলি পরিবর্তনের বিষয়টি স্বীকার করে না!)
মার্ক অ্যামেরি

46

HTTP প্রমাণীকরণ ( WWW- প্রমাণীকরণ এবং অনুমোদন) ধরে নেওয়া শিরোনাম) ব্যবহার করা হচ্ছে , যদি অন্য কোনও ব্যবহারকারী হিসাবে প্রমাণীকরণ করা অনুরোধকৃত সংস্থানটিতে অ্যাক্সেসের অনুমতি দেয় তবে 401 অননুমোদিতকে ফিরিয়ে দেওয়া উচিত।

403 নিষিদ্ধ ব্যবহার করা হয় যখন সম্পদের অ্যাক্সেস প্রত্যেকের জন্য নিষিদ্ধ বা কোনও প্রদত্ত নেটওয়ার্কের মধ্যে সীমাবদ্ধ বা কেবল এসএসএলের মাধ্যমে অনুমোদিত, যতক্ষণ না এটি HTTP প্রমাণীকরণের সাথে সম্পর্কিত নয়।

যদি HTTP প্রমাণীকরণ ব্যবহার না হয় এবং পরিষেবাটি কুকি-ভিত্তিক প্রমাণীকরণ স্কিমটি এখনকার প্রচলিত নিয়ম অনুসারে হয়, তবে একটি 403 বা 404 ফেরত দেওয়া উচিত।

401 সম্পর্কিত, এটি আরএফসি 7235 (হাইপারটেক্সট ট্রান্সফার প্রোটোকল (HTTP / 1.1): প্রমাণীকরণ) থেকে এসেছে:

3.1। 401 অননুমোদিত

401 (অননুমোদিত) স্থিতি কোডটি নির্দেশ করে যে অনুরোধটি প্রয়োগ করা হয়নি কারণ লক্ষ্য সংস্থার জন্য বৈধ প্রমাণীকরণের শংসাপত্রের অভাব রয়েছে। উত্স সার্ভারটি অবশ্যই WWW- প্রমাণীকরণের শিরোলেখ ক্ষেত্রটি (বিভাগ 4.4) প্রেরণ করতে হবে যাতে লক্ষ্য সংস্থানটিতে কমপক্ষে একটি চ্যালেঞ্জ প্রযোজ্য। যদি অনুরোধটিতে প্রমাণীকরণের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে তবে 401 প্রতিক্রিয়াটি নির্দেশ করে যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে। ক্লায়েন্ট মায়া একটি নতুন বা প্রতিস্থাপিত অনুমোদনের শিরোনাম ক্ষেত্র (বিভাগ 4.1) দিয়ে অনুরোধটি পুনরাবৃত্তি করতে পারে। যদি 401 প্রতিক্রিয়াটিতে পূর্বের প্রতিক্রিয়াটির মতো একই চ্যালেঞ্জ থাকে এবং ব্যবহারকারী এজেন্ট ইতিমধ্যে কমপক্ষে একবার প্রমাণীকরণের চেষ্টা করেছে, তবে এটির ক্ষেত্রে সাধারণত এজেন্ট সম্পর্কিত তথ্য উপস্থিত থাকায় ব্যবহারকারী এজেন্টটি ব্যবহারকারীর কাছে বদ্ধ প্রতিনিধিত্ব উপস্থাপন করতে হবে।

403 (এবং 404) এর শব্দার্থবিজ্ঞান সময়ের সাথে সাথে পরিবর্তন হয়েছে। এটি 1999 সাল থেকে (আরএফসি 2616):

10.4.4 403 নিষিদ্ধ

সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে।
অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়।
যদি অনুরোধের পদ্ধতিটি হেড না হয় এবং সার্ভারটি
কেন অনুরোধটি পূরণ করা হয়নি তা জনসাধারণের কাছে প্রকাশ করতে চায় তবে এটি সত্তায় অস্বীকার করার কারণটি বর্ণনা করতে হবে। সার্ভার যদি ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে না চায় তবে স্থিতি কোড 404
(পাওয়া যায়নি) পরিবর্তে ব্যবহার করা যেতে পারে।

2014 সালে আরএফসি 7231 (হাইপারটেক্সট ট্রান্সফার প্রোটোকল (HTTP / 1.1): শব্দার্থবিজ্ঞান এবং সামগ্রী) 403 এর অর্থ পরিবর্তন করেছে:

6.5.3। 403 নিষিদ্ধ

403 (নিষিদ্ধ) স্থিতি কোডটি ইঙ্গিত দেয় যে সার্ভারটি অনুরোধটি বুঝতে পেরেছিল কিন্তু এটি অনুমোদিত করতে অস্বীকৃতি জানায়। অনুরোধটি কেন নিষিদ্ধ করা হয়েছে তা সর্বজনীন করতে ইচ্ছুক এমন একটি সার্ভার প্রতিক্রিয়া পেলোডে (যদি কোনও হয়) সেই কারণটি বর্ণনা করতে পারে।

অনুরোধে যদি প্রমাণীকরণের শংসাপত্রগুলি সরবরাহ করা হত তবে
সার্ভার তাদের অ্যাক্সেস দেওয়ার ক্ষেত্রে অপর্যাপ্ত বলে মনে করে। ক্লায়েন্টটি
অনুরূপ
শংসাপত্রগুলির সাথে স্বয়ংক্রিয়ভাবে অনুরোধটির পুনরাবৃত্তি করা উচিত নয় । ক্লায়েন্ট MAY নতুন বা বিভিন্ন শংসাপত্র সহ অনুরোধটি পুনরাবৃত্তি করতে পারে। তবে
শংসাপত্রগুলির সাথে সম্পর্কিত না থাকার কারণে একটি অনুরোধ নিষিদ্ধ হতে পারে ।

এমন একটি উত্স সার্ভার যা
নিষিদ্ধ লক্ষ্য সংস্থার বর্তমান অস্তিত্ব "লুকিয়ে রাখতে" চায় তার পরিবর্তে
404 এর স্থিতি কোডের সাথে প্রতিক্রিয়া জানায় (খুঁজে পাওয়া যায় না)।

সুতরাং, একটি 403 (বা একটি 404) এর অর্থ এখন কোনও কিছু। নতুন শংসাপত্র সরবরাহ করা হয়ত সহায়তা করবে ... বা এটি নাও পারে।

আমি বিশ্বাস করি যে এর পরিবর্তিত হওয়ার কারণটি হ'ল আরএফসি 2616 ধরে নেওয়া এইচটিটিপি প্রমাণীকরণ ব্যবহৃত হবে যখন অনুশীলনে আজকের ওয়েব অ্যাপ্লিকেশন উদাহরণস্বরূপ ফর্ম এবং কুকিজ ব্যবহার করে কাস্টম প্রমাণীকরণ স্কিম তৈরি করে।


2
এটা মজার. আরএফসি 7231 এবং আরএফসি 7235 এর উপর ভিত্তি করে, আমি 401 এবং 403
ব্রায়ান

2
403 এর অর্থ "আমি আপনাকে জানি কিন্তু আপনি এই সংস্থানটি দেখতে পাচ্ছেন না।" বিভ্রান্তির কোনও কারণ নেই।
মাইকেল ব্ল্যাকবার্ন

"যদি অনুরোধটিতে প্রমাণীকরণের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে, তবে 401 প্রতিক্রিয়া ইঙ্গিত দেয় যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে The ক্লায়েন্টের MAY অনুরোধটিকে নতুন বা প্রতিস্থাপিত অনুমোদনের শিরোনাম ক্ষেত্র (বিভাগ 4.1) দিয়ে পুনরাবৃত্তি করবে" " তবে, "4.2। 'অনুমোদন' শিরোনাম ক্ষেত্রটি কোনও ব্যবহারকারী এজেন্টকে একটি উত্সের সার্ভার দিয়ে নিজেকে প্রমাণীকরণের অনুমতি দেয়"। দেখে মনে হচ্ছে আরএফসি 7235 তে তারা "অনুমোদন" শব্দটি ব্যবহার করে যেমন এটি "প্রমাণীকরণ"।
সেক্ষেত্রে

28

এটি একটি পুরানো প্রশ্ন, তবে একটি বিকল্প যা সত্যই কখনও উত্থাপিত হয়নি তা হ'ল 404 ফিরিয়ে দেওয়া a সুরক্ষার দৃষ্টিকোণ থেকে, সর্বাধিক ভোট দেওয়া উত্তর একটি সম্ভাব্য তথ্য ফাঁসের দুর্বলতায় ভুগছে । উদাহরণস্বরূপ, বলুন যে প্রশ্নে থাকা নিরাপদ ওয়েব পৃষ্ঠাটি একটি সিস্টেম অ্যাডমিন পৃষ্ঠা, বা সম্ভবত আরও সাধারণভাবে, এমন একটি সিস্টেমের রেকর্ড যা ব্যবহারকারীর অ্যাক্সেস পায় না। আদর্শভাবে আপনি কোনও দূষিত ব্যবহারকারীর এমনকি এটির একটি পৃষ্ঠা / রেকর্ড রয়েছে তা জানতেও চাইবেন না, তাদের অ্যাক্সেস নেই alone আমি যখন এই জাতীয় কিছু তৈরি করছি, তখন আমি অভ্যন্তরীণ লগতে অননুমোদিত / অননুমোদিত অনুরোধগুলি রেকর্ড করার চেষ্টা করব, তবে একটি 404 ফিরিয়ে দেব।

কোনও আক্রমণকারীর আক্রমণকারীর অংশ হিসাবে এই ধরণের তথ্য কীভাবে ব্যবহার করা যেতে পারে সে সম্পর্কে OWASP এর আরও কিছু তথ্য রয়েছে ।


3
পূর্ববর্তী উত্তরে 404 ব্যবহারের কথা উল্লেখ করা হয়েছে। আপনি পুনরায় বিন্দুতে রয়েছেন: তথ্য ফাঁস এবং যে কোনও ব্যক্তির নিজস্ব প্রমাণীকরণ / অনুমোদন স্কিম রোলিংয়ের জন্য এটি একটি গুরুত্বপূর্ণ বিবেচনা হওয়া উচিত। OWASP উল্লেখ করার জন্য +1
ডেভ ওয়াটস

হাস্যকরভাবে OWASP লিঙ্কটি এখন 404 পৃষ্ঠায় যায়। আমি owasp.org/index.php/…
anned2020

মাথা আপ জন্য ধন্যবাদ, আমি এটি আপডেট!
প্যাট্রিক হোয়াইট

এপিআই এবং কীভাবে অ্যাক্সেস দেওয়া হয় তা নির্ভর করে। তবে "ফাঁস" কোনও সমস্যা নয় যদি এটি ব্যবহারকারীর নাম / পাসওয়ার্ডের জন্য 401 ফেরত দেয় তবে এটি অবশ্যই কোনও ওয়েব ফর্মের মতো?
জেমস

26
  • 401 অননুমোদিত : আপনি কে তা আমি জানি না। এটি একটি প্রমাণীকরণ ত্রুটি।
  • 403 নিষিদ্ধ : আমি জানি আপনি কে, কিন্তু আপনার এই সংস্থানটি অ্যাক্সেস করার অনুমতি নেই। এটি একটি অনুমোদনের ত্রুটি।

নিশ্চিত নয় যে এটি "সর্বদা" অর্থ প্রেরক অজানা ছিল। তারা যা কিছু অনুরোধ করেছিল তা অনুমোদিত ছিল না।
জেমস

22

এই প্রশ্নটি কিছু সময় আগে জিজ্ঞাসা করা হয়েছিল, তবে মানুষের চিন্তাভাবনা এগিয়ে যায়।

এই খসড়ার 6.5.3 বিভাগে (ফিল্ডিং এবং পুনরায় অনুসন্ধানে রচিত) স্ট্যাটাস কোড 403 কে আরএফসি 2616 তে নথিভুক্ত হওয়াতে কিছুটা আলাদা অর্থ দেয় ।

এটি বেশ কয়েকটি জনপ্রিয় ওয়েব সার্ভার এবং ফ্রেমওয়ার্কের দ্বারা নিযুক্ত প্রমাণীকরণ ও অনুমোদনের স্কিমগুলিতে কী ঘটে তা প্রতিফলিত করে।

আমি যেটাকে সবচেয়ে স্পষ্ট মনে করি তার উপর আমি জোর দিয়েছি।

6.5.3। 403 নিষিদ্ধ

403 (নিষিদ্ধ) স্থিতি কোডটি ইঙ্গিত দেয় যে সার্ভারটি অনুরোধটি বুঝতে পেরেছিল কিন্তু এটি অনুমোদিত করতে অস্বীকৃতি জানায়। অনুরোধটি কেন নিষিদ্ধ করা হয়েছে তা সর্বজনীন করতে ইচ্ছুক এমন একটি সার্ভার প্রতিক্রিয়া পেলোডে (যদি কোনও হয়) সেই কারণটি বর্ণনা করতে পারে।

অনুরোধে যদি প্রমাণীকরণের শংসাপত্রগুলি সরবরাহ করা হত তবে সার্ভার তাদের অ্যাক্সেস দেওয়ার ক্ষেত্রে অপর্যাপ্ত বলে মনে করে। ক্লায়েন্টটি অনুরূপ শংসাপত্রগুলির সাথে অনুরোধটির পুনরাবৃত্তি করা উচিত নয়। ক্লায়েন্ট MAY নতুন বা বিভিন্ন শংসাপত্র সহ অনুরোধটি পুনরাবৃত্তি করতে পারে। তবে শংসাপত্রগুলির সাথে সম্পর্কিত না থাকার কারণে একটি অনুরোধ নিষিদ্ধ হতে পারে।

এমন একটি উত্স সার্ভার যা নিষিদ্ধ লক্ষ্য সংস্থার বর্তমান অস্তিত্ব "লুকিয়ে রাখতে" চায় তার পরিবর্তে 404 এর স্থিতি কোডের সাথে প্রতিক্রিয়া জানায় (খুঁজে পাওয়া যায় না)।

আপনি যে কনভেনশন ব্যবহার করুন না কেন, গুরুত্বপূর্ণ বিষয়টি হ'ল আপনার সাইট / এপিআই জুড়ে অভিন্নতা সরবরাহ করা।


2
খসড়াটি অনুমোদিত হয়েছিল এবং এখন আরএফসি 7231.
Vebjorn Ljosa

13

টি এল; ডিআর

  • 401: প্রমাণীকরণের সাথে সম্পর্কিত একটি প্রত্যাখ্যান
  • 403: প্রমাণীকরণের সাথে কিছুই করার মতো একটি প্রত্যাখ্যান

ব্যবহারিক উদাহরণ

যদি অ্যাপাচি প্রমাণীকরণ প্রয়োজন (মাধ্যমে .htaccess), এবং আপনি আঘাত Cancel, এটি একটি সঙ্গে প্রতিক্রিয়া জানাতে হবে401 Authorization Required

যদি এনজিনেক্স কোনও ফাইল সন্ধান করে তবে এতে পড়ার / অ্যাক্সেস করার কোনও অ্যাক্সেসের অধিকার (ব্যবহারকারী / গোষ্ঠী) নেই, তবে এটি প্রতিক্রিয়া জানাবে403 Forbidden

আরএফসি (2616 ধারা 10)

401 অননুমোদিত (10.4.2)

অর্থ 1: প্রমাণীকরণের প্রয়োজন

অনুরোধটির ব্যবহারকারীর প্রমাণীকরণ প্রয়োজন। ...

অর্থ 2: প্রমাণীকরণ অপর্যাপ্ত

... যদি অনুরোধটিতে ইতিমধ্যে অনুমোদনের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে তবে 401 প্রতিক্রিয়াটি নির্দেশ করে যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে। ...

403 নিষিদ্ধ (10.4.4)

অর্থ: প্রমাণীকরণের সাথে সম্পর্কিত নয়

... অনুমোদন সাহায্য করবে না ...

আরো বিস্তারিত:

  • সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে।

  • এটি সত্তার অস্বীকার করার কারণ বর্ণনা করতে হবে

  • স্থিতি কোড 404 (পাওয়া যায়নি) পরিবর্তে ব্যবহার করা যেতে পারে

    (সার্ভার যদি ক্লায়েন্টের কাছ থেকে এই তথ্যটি রাখতে চায়)


11

তারা লগ ইন বা সঠিক ব্যবহারকারী গ্রুপের সাথে সম্পর্কিত নয়

আপনি দুটি ভিন্ন মামলা বলেছেন; প্রতিটি ক্ষেত্রে পৃথক প্রতিক্রিয়া হওয়া উচিত:

  1. এগুলি যদি লগইন না করে থাকে তবে আপনার 401 অননুমোদিত ফিরে আসা উচিত
  2. যদি তারা লগ ইন থাকে তবে সঠিক ব্যবহারকারী গোষ্ঠীর অন্তর্ভুক্ত না হয়, আপনার 403 নিষিদ্ধ হওয়া উচিত

এই উত্তরে প্রাপ্ত মন্তব্যের ভিত্তিতে আরএফসি-তে দ্রষ্টব্য:

যদি ব্যবহারকারী লগ ইন না করে থাকে তবে সেগুলি অনুমোদনযোগ্য নয়, যার HTTP সমতুল্য 401 এবং বিভ্রান্তিকরভাবে তাকে আরএফসি-তে অননুমোদিত বলা হয়। বিভাগ হিসাবে 10.4.2 401 অননুমোদিত জন্য বলা হয়েছে :

"অনুরোধটির ব্যবহারকারীর প্রমাণীকরণ প্রয়োজন " "

আপনি যদি অমান্য না হয়ে থাকেন তবে 401 হ'ল সঠিক প্রতিক্রিয়া। তবে আপনি যদি অননুমোদিত হন, শব্দার্থগতভাবে সঠিক অর্থে, 403 সঠিক প্রতিক্রিয়া।


5
এটি সঠিক নয়। পড়ুন বোঝায় যা RFC @ Cumbayah এর উত্তর এবং।
ডেভিড আর।

7
@DavideR। আরএফসি আন্তঃচ্যুতিতে প্রমাণীকরণ এবং অনুমোদন ব্যবহার করে । আমি বিশ্বাস করি যখন প্রমাণীকরণের অর্থ সহ পড়ে এটি আরও অর্থবোধ করে ।
জায়েদ মাসুদ

এই উত্তর বিপরীত হয়। অননুমোদিত আন-প্রমাণীকরণের মতো নয়। @ ডেভিডআর ঠিক আছে প্রমাণীকরণ এবং অনুমোদন বিনিময়যোগ্য নয়
BozoJoe

2
2616 পোড়াতে হবে। বেশ কয়েকটি নতুন আরএফসি খুব পরিষ্কার যে "আমি আপনাকে চিনি না" এবং "আমি আপনাকে জানি কিন্তু আপনি এটি অ্যাক্সেস করতে পারবেন না" এর মধ্যে পার্থক্য করার প্রয়োজন রয়েছে। এমন কোনও সংস্থার অস্তিত্ব স্বীকার করার কোনও বৈধ কারণ নেই যা কখনই পূরণ হবে না (বা HTTP এর মাধ্যমে পূরণ হবে না), যা 403-ট্রুথাররা এটাই পরামর্শ দিচ্ছেন।
মাইকেল ব্ল্যাকবার্ন

6

এর অর্থ:

401 : ব্যবহারকারী প্রমাণিত নয় (সঠিকভাবে), সংস্থান / পৃষ্ঠাতে প্রমাণীকরণের প্রয়োজন

403 : ব্যবহারকারী প্রমাণীকৃত, তবে তার ভূমিকা বা অনুমতিগুলি অনুরোধকৃত উত্স অ্যাক্সেসের অনুমতি দেয় না, উদাহরণস্বরূপ ব্যবহারকারী প্রশাসক নয় এবং অনুরোধ করা পৃষ্ঠা প্রশাসকদের জন্য নয়


এটি এই প্রশ্নের একটি দুর্দান্ত টিএলডিআর উত্তর।
কুশা

5

এটি এখানের যে কোনও জায়গার চেয়ে আমার মাথার চেয়ে সহজ so

401: এটি দেখতে আপনার HTTP বেসিক লেখার প্রয়োজন।

403: আপনি এটি দেখতে পারবেন না, এবং HTTP বেসিক লেখাগুলি কোনও সাহায্য করবে না।

ব্যবহারকারীর যদি কেবল আপনার সাইটের মানক এইচটিএমএল লগইন ফর্মটি ব্যবহার করে লগ ইন করতে হয় তবে 401 যথাযথ হবে না কারণ এটি HTTP বেসিক লেখার সাথে সুনির্দিষ্ট।

403 ব্যবহারের মতো জিনিসগুলিতে অ্যাক্সেস অস্বীকার করার জন্য আমি প্রস্তাব দিই না /includes, কারণ যতক্ষণ না ওয়েব সম্পর্কিত, those সংস্থানগুলি মোটেই বিদ্যমান নেই এবং তাই 404 হওয়া উচিত।

এটি 403 হিসাবে "আপনার লগ ইন করা দরকার" হিসাবে ফেলেছে।

অন্য কথায়, 403 এর অর্থ "এই সংস্থানটির HTTP বেসিক লেখার বাইরে অন্য লেখার কিছু ফর্ম দরকার"।

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


5

আমি মনে করি এটি বিবেচনা করা গুরুত্বপূর্ণ, একটি ব্রাউজারে, 401 ব্যবহারকারীকে নতুন শংসাপত্র প্রবেশের জন্য একটি প্রমাণীকরণ ডায়ালগ শুরু করে, 403 না করে। ব্রাউজারগুলি মনে করে যে, যদি কোনও 401 ফিরে আসে তবে ব্যবহারকারীর পুনরায় প্রমাণীকরণ করা উচিত। সুতরাং 401 অবৈধ প্রমাণীকরণের জন্য দাঁড়ায় 4040 এর অনুমতির অভাবে দাঁড়িয়ে থাকে।

এখানে সেই যুক্তির অধীনে কিছু মামলা রয়েছে যেখানে প্রমাণীকরণ বা অনুমোদন থেকে কোনও ত্রুটি ফিরে আসবে, উল্লেখযোগ্য বাক্যাংশটি সাহসী করে।

  • একটি সংস্থান প্রমাণীকরণ প্রয়োজন কিন্তু কোনও শংসাপত্র নির্দিষ্ট করা হয়নি

401 : ক্লায়েন্টের শংসাপত্রগুলি নির্দিষ্ট করা উচিত।

  • নির্দিষ্ট শংসাপত্রগুলি একটি অবৈধ বিন্যাসে রয়েছে

400 : এটি 401 বা 403 নয়, কারণ সিনট্যাক্স ত্রুটি সবসময় 400 এ ফিরে আসা উচিত।

  • নিদিষ্ট পরিচয়পত্র একটি রেফারেন্স ব্যবহারকারী যা বিদ্যমান নেই

401 : ক্লায়েন্টের বৈধ শংসাপত্রগুলি নির্দিষ্ট করা উচিত।

  • নিদিষ্ট পরিচয়পত্র হয় অবৈধ কিন্তু একটি বৈধ ব্যবহারকারীর উল্লেখ (অথবা একটি নির্দিষ্ট ব্যবহারকারীর প্রয়োজন হয় না একটি ব্যবহারকারী উল্লেখ করবেন না)।

401 : আবার, ক্লায়েন্টের বৈধ শংসাপত্রগুলি নির্দিষ্ট করা উচিত।

  • নিদিষ্ট পরিচয়পত্র আছে মেয়াদ শেষ

401 : এটি কার্যত সাধারণভাবে অবৈধ শংসাপত্রগুলির সমান, তাই ক্লায়েন্টের বৈধ শংসাপত্রগুলি নির্দিষ্ট করা উচিত।

  • নির্দিষ্ট শংসাপত্রগুলি সম্পূর্ণরূপে বৈধ তবে নির্দিষ্ট সংস্থানটি যথেষ্ট নয় , যদিও এটি আরও বেশি অনুমতি সহ শংসাপত্রগুলি সম্ভব।

403 : বৈধ শংসাপত্রগুলি নির্দিষ্ট করে সংস্থানটিতে অ্যাক্সেসের অনুমতি দেবে না, কারণ বর্তমান শংসাপত্রগুলি ইতিমধ্যে বৈধ তবে কেবল তার অনুমতি নেই।

  • বিশেষ সংস্থান হয় অনধিগম্য পরিচয়পত্র নির্বিশেষে।

403 : এটি শংসাপত্রগুলির নির্বিশেষে, সুতরাং বৈধ শংসাপত্রগুলি উল্লেখ করা কোনওরকম সহায়তা করতে পারে না।

  • নিদিষ্ট পরিচয়পত্র সম্পূর্ণরূপে বৈধ কিন্তু বিশেষ ক্লায়েন্ট হয় অবরুদ্ধ তাদের ব্যবহার থেকে।

403 : যদি ক্লায়েন্টকে অবরুদ্ধ করা হয় তবে নতুন শংসাপত্রগুলি নির্দিষ্ট করে কিছু করা হবে না।


3

ইংরেজীতে:

401

আপনাকে সম্ভাব্য অ্যাক্সেসের অনুমতি দেওয়া হয়েছে তবে এই অনুরোধের কোনও কারণে আপনাকে প্রত্যাখ্যান করা হয়েছিল। যেমন খারাপ পাসওয়ার্ড? আবার চেষ্টা করুন, সঠিক অনুরোধের পরিবর্তে আপনি এর পরিবর্তে সাফল্যের প্রতিক্রিয়া পাবেন।

403

আপনি কখনও অনুমোদিত নন। আপনার নাম তালিকায় নেই, আপনি কখনই প্রবেশ করতে পারবেন না, চলে যান, পুনরায় চেষ্টা করার অনুরোধটি প্রেরণ করবেন না, এটি সর্বদা অস্বীকার করা হবে। চলে যাও.


1

বিষয়টি সম্পর্কে সর্বশেষতম আরএফসি দেওয়া ( 7231 এবং 7235 ) ব্যবহারের ক্ষেত্রে যথেষ্ট স্পষ্ট বলে মনে হচ্ছে (সংক্ষিপ্ত বিবরণ যুক্ত হয়েছে):

  • 401 অযৌক্তিকর জন্য ("বৈধ প্রমাণীকরণের অভাব রয়েছে"); অর্থাত্ 'আমি জানি না আপনি কে, বা আমি বিশ্বাস করি না আপনি যে তিনিই বলছেন আপনি' '

401 অননুমোদিত

401 (অননুমোদিত) স্থিতি কোডটি নির্দেশ করে যে অনুরোধটি প্রয়োগ করা হয়নি কারণ লক্ষ্য সংস্থার জন্য বৈধ প্রমাণীকরণের শংসাপত্রের অভাব রয়েছে । 401 টি প্রতিক্রিয়া উত্পন্নকারী সার্ভার অবশ্যই WWW- প্রমাণীকরণের শিরোলেখ ক্ষেত্রটি (বিভাগ 4.1) প্রেরণ করবে যাতে লক্ষ্য সংস্থানটিতে কমপক্ষে একটি চ্যালেঞ্জ প্রযোজ্য।

যদি অনুরোধটিতে প্রমাণীকরণের শংসাপত্রগুলি অন্তর্ভুক্ত থাকে তবে 401 প্রতিক্রিয়াটি নির্দেশ করে যে সেই শংসাপত্রগুলির জন্য অনুমোদন প্রত্যাখ্যান করা হয়েছে। ব্যবহারকারী এজেন্ট একটি নতুন বা প্রতিস্থাপিত অনুমোদনের শিরোনাম ক্ষেত্র (বিভাগ 4.2) দিয়ে অনুরোধটি পুনরাবৃত্তি করতে পারে। যদি 401 প্রতিক্রিয়াটিতে পূর্বের প্রতিক্রিয়াটির মতো একই চ্যালেঞ্জ থাকে এবং ব্যবহারকারী এজেন্ট ইতিমধ্যে কমপক্ষে একবার প্রমাণীকরণের চেষ্টা করেছে, তবে এটির ক্ষেত্রে সাধারণত এজেন্ট সম্পর্কিত তথ্য উপস্থিত থাকায় ব্যবহারকারী এজেন্টটি ব্যবহারকারীর কাছে বদ্ধ প্রতিনিধিত্ব উপস্থাপন করতে হবে।

  • 403 অননুমোদিত ("অনুমোদন প্রত্যাখ্যান করে") এর জন্য; অর্থাত্ 'আমি জানি আপনি কে, তবে আপনার এই সংস্থানটি অ্যাক্সেস করার অনুমতি নেই' '

403 নিষিদ্ধ

403 (নিষিদ্ধ) স্থিতি কোডটি ইঙ্গিত দেয় যে সার্ভারটি অনুরোধটি বুঝতে পেরেছিল কিন্তু এটি অনুমোদিত করতে অস্বীকৃতি জানায় । অনুরোধটি কেন নিষিদ্ধ করা হয়েছে তা সর্বজনীন করতে ইচ্ছুক এমন একটি সার্ভার প্রতিক্রিয়া পেলোডে (যদি কোনও হয়) সেই কারণটি বর্ণনা করতে পারে।

অনুরোধে যদি প্রমাণীকরণের শংসাপত্রগুলি সরবরাহ করা হত তবে সার্ভার তাদের অ্যাক্সেস দেওয়ার ক্ষেত্রে অপর্যাপ্ত বলে মনে করে। ক্লায়েন্টটি অনুরূপ শংসাপত্রগুলির সাথে স্বয়ংক্রিয়ভাবে অনুরোধটির পুনরাবৃত্তি করা উচিত নয়। ক্লায়েন্ট MAY নতুন বা বিভিন্ন শংসাপত্র সহ অনুরোধটি পুনরাবৃত্তি করতে পারে। তবে শংসাপত্রগুলির সাথে সম্পর্কিত না থাকার কারণে একটি অনুরোধ নিষিদ্ধ হতে পারে।

এমন একটি উত্স সার্ভার যা নিষিদ্ধ লক্ষ্য সংস্থার বর্তমান অস্তিত্ব "লুকিয়ে রাখতে" চায় তার পরিবর্তে 404 এর স্থিতি কোডের সাথে প্রতিক্রিয়া জানায় (খুঁজে পাওয়া যায় না)।


2
-1; এই অনুচ্ছেদগুলি ইতিমধ্যে এখানে অন্যান্য উত্তরে উদ্ধৃত হয়েছে এবং আপনার নতুন কিছু যুক্ত হয়নি adds আমি তর্ক করব যে পার্থক্যটি কী তা স্পষ্টভাবে পরিষ্কার নয় ; আপনি দুটি বৈধ সংক্ষিপ্তসার হিসাবে "বৈধ প্রমাণীকরণের অভাব" এবং "অনুমোদন দিতে অস্বীকার করেছেন" তবে আমি এমন কোনও পরিস্থিতিতে কল্পনা করতে পারি না যেখানে এই সংক্ষিপ্ত বিবরণগুলির মধ্যে একটি প্রয়োগ হয় যেখানে অন্যটিও প্রয়োগ করার জন্য ব্যাখ্যা করা যায় না।
মার্ক আমেরিকা

এখানে অনেকগুলি উত্তর রয়েছে যা অনেকগুলি আরএফসি'র কভার করে এবং সম্পাদিত হয় এবং জলকে জলাবদ্ধ করে আপডেট করা হয়। আমি কী authenticatedএবং কী authorizedএবং সমস্ত পুরানো আরএফসি'র বিষয়টি ছেড়ে দেওয়ার জন্য একটি লিঙ্ক অন্তর্ভুক্ত করেছি যাতে অ্যাপ্লিকেশনটি পরিষ্কার থাকে।
সিজেবার্থ

আপনার সম্পাদনাটি দুটি কোডের আপনার ব্যাখ্যাটি স্পষ্ট করে, যা মনে হয় অনেক অন্যান্য ব্যক্তির ব্যাখ্যার সাথে মেলে। যাইহোক, আমি ব্যক্তিগতভাবে বিশ্বাস করি যে ব্যাখ্যাটি কোনও অর্থবোধ করে না। 403 বর্ণনায় " যদি প্রমাণীকরণের শংসাপত্রগুলি সরবরাহ করা হত " বাক্যাংশের ব্যবহারটি বোঝায় যে কোনও শংসাপত্র সরবরাহ না করা সত্ত্বেও একটি 403 উপযুক্ত হতে পারে - যেমন "অস্বীকৃত" কেস। এদিকে, 401 বর্ণনায় অন্তর্ভুক্ত করা হচ্ছে "টার্গেট রিসোর্সের জন্য" এই বাক্যাংশটির সর্বাধিক প্রাকৃতিক ব্যাখ্যাটি হ'ল 401 এমন কোনও ব্যবহারকারীর জন্য ব্যবহার করা যেতে পারে যা অনুমোদনপ্রাপ্ত তবে অনুমোদিত নয়।
মার্ক আমেরিকা

-6

401 বনাম 403 এর ক্ষেত্রে, এটি বহুবার উত্তর দেওয়া হয়েছে। এটি মূলত একটি 'এইচটিটিপি অনুরোধ পরিবেশ' বিতর্ক, কোনও 'অ্যাপ্লিকেশন' বিতর্ক নয়।

রোল-আপনার নিজস্ব-লগইন ইস্যুতে (অ্যাপ্লিকেশন) কোনও প্রশ্ন রয়েছে বলে মনে হচ্ছে।

এই ক্ষেত্রে, কেবল লগইন না করা 401 বা 403 প্রেরণ করার পক্ষে যথেষ্ট নয়, যদি না আপনি HTTP Auth বনাম কোনও লগইন পৃষ্ঠা ব্যবহার করেন (HTTP এথ সেট করার সাথে আবদ্ধ নয়)। দেখে মনে হচ্ছে আপনি কোনও ফাইলের অ্যাপ্লিকেশন-স্তরের অ্যাক্সেসের জন্য রোল-আপনার নিজের-লগইন স্ক্রিন উপস্থিত (অনুরোধকৃত উত্সের পরিবর্তে) উপস্থিত থাকতে পারেন 201 এটি বলে:

"আমি আপনাকে শুনেছি, এটি এখানে, তবে পরিবর্তে এটি চেষ্টা করুন (আপনাকে এটি দেখার অনুমতি নেই)"


ঠিক কী তৈরি হচ্ছে?
গ্রান্ট গ্রিকজান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.