Soru 403 Yasaksız 401 Yetkisiz HTTP yanıtları


Varolan bir web sayfası için, ancak yeterli ayrıcalıklara sahip olmayan bir kullanıcı için, (oturum açmamış veya uygun kullanıcı grubuna ait değiller), sunulacak düzgün HTTP yanıtı nedir? 401? 403? Başka bir şey? Şimdiye kadar okuduğum her şey, ikisi arasındaki fark konusunda çok net değil. Her cevap için hangi kullanım örnekleri uygundur?


1905
2017-07-21 07:21


Menşei


401 'Yetkisiz' 401 'Unauthenticated' olmalı, problem çözüldü! - Christophe Roussy
Vay. Aşağıdaki cevaplar tüm harita üzerinde gülünç bir şekilde. HTTP yanıtsızlığı için doğru cevabın tanımlanmamış olduğu görülmektedir. - Joe Lapp
Beni ve meslektaşlarımın bu soru için kaç kez yığın akışına döndüğünü hatırlamıyorum. Belki HTTP standartları, 401 ve 403 için adları veya açıklamaları değiştirmeyi düşünmelidir. - neurite
Aslında, bu hatanın farklı bir sürümünü alıyorum. "os_authType 'herhangi bir' idi ve geçersiz bir çerez gönderildi" gibi. Bunu nasıl çözeceğimizi anlayamıyorum. Çok zaman geçirdim, nedenleri var ama bir çözüm bulamadı. - Sandeep Anand
@Qwerty no, yeni RFC7231 RFC2616'yı geçersiz kılar. 403 şimdi farklı bir anlama sahiptir. - fishbone


Cevaplar:


Açık bir açıklama Daniel Irvine:

İle ilgili bir sorun var 401 Yetkisizkimlik doğrulama hataları için HTTP durum kodu. Ve işte tam da bu: yetkilendirme değil, kimlik doğrulama içindir.   401 cevabı almak, sunucunun size “siz değilsiniz.   kimliği doğrulanmış veya hiç doğrulanmamış veya kimliği doğrulanmamış   yanlış - ama lütfen tekrar doğrulayın ve tekrar deneyin. ”Size yardımcı olmak için,   her zaman bir WWW-Authenticate nasıl olduğunu açıklayan başlık   kimlik doğrulaması yapmak.

Bu genellikle web sunucunuz tarafından değil, web sunucunuz tarafından döndürülen bir yanıttır.   uygulama.

Aynı zamanda çok geçici bir şeydir; sunucu denemenizi istiyor   tekrar.

Bu yüzden yetkilendirmek için 403 yasak tepki. Onun   kalıcı, uygulama mantığına bağlı ve daha somut   401'den daha fazla cevap.

403 cevabı almak, sunucunun size “Üzgünüm” olduğunu söylüyor. biliyorum   kimsin - kim olduğunu söylediğine inanıyorum - ama sende yok   bu kaynağa erişim izni. Belki de sisteme sorarsan   Yönetici güzelce izin alacaksınız. Ama lütfen rahatsız etme   Beni tekrar değişene kadar tekrar et. ”

Özet olarak, 401 Yetkisiz cevap eksik için kullanılmalıdır   veya hatalı kimlik doğrulaması ve 403 yasak cevap kullanılmalıdır   Daha sonra, kullanıcı doğrulandığında ancak yetkilendirilmediğinde   Verilen kaynak üzerinde istenen işlemi gerçekleştirir.

Bir diğeri güzel resimsel biçim http durum kodlarının nasıl kullanılması gerektiği.


2844
2017-08-04 06:24



Varsayılan IIS 403 iletisi, "Bu genel bir 403 hatasıdır ve kimliği doğrulanmış kullanıcının sayfayı görüntülemeye yetkisi olmadığı anlamına gelir"; - Ben Challenor
@JPReddy Cevabınız doğru. Ancak, 401'in "Kimliği Doğrulanmamış" ve 403'ün "Yetkisiz" olarak adlandırılmasını beklerim. Kimlik Doğrulama ile ilgili olan 401'in "İzinsiz" metne eşlik eden biçime sahip olması çok kafa karıştırıcıdır .... İngilizce'de iyi olmadığım sürece (ki bu oldukça olası). - p.matsinopoulos
@ZaidMasud, RFC'ye göre bu yorum doğru değil. Cumbayah'ın cevabı doğru anladı. 401 "doğru yetkiyi kaçırıyor" anlamına gelir. "İsterseniz kendinizi doğrulamaya çalışabilirsiniz" anlamına gelir. Dolayısıyla, hem doğru bir şekilde kimlik doğrulaması yapmayan hem de yetkilendirilmiş bir doğrulanmış kimliği olan bir müşteri 401 alır. 403 "Kim olursa olsun, buna cevap vermeyeceğim" anlamına gelir. RFC, 403 durumunda açıkça "izin vermeyecektir" ifadesini kullanmaktadır. - Davide R.
401 Kimlik Doğrulama hatası, 403 Yetkilendirme hatası. Bu kadar basit. - Shahriyar Imanov
Blog yayınından kopyalarken maalesef görüşlerini yanlış yazdınız. Başkalarının belirttiği gibi 403, kimliğinizin kim olduğuna bakılmaksızın kaynağa erişemediğiniz anlamına gelir. Genellikle bu durum kodunu, IP adres aralıklarına veya webroot'umdaki dosyalara doğrudan erişim istemediğim (örneğin, bir betik onlara hizmet etmelidir) kilitlenen kaynaklar için kullanırım. - Kyle


Görmek RFC2616:

401 Yetkisiz:

İstek zaten yetkilendirme kimlik bilgilerini içeriyorsa, 401 yanıtı bu kimlik bilgileri için yetkilendirmenin reddedildiğini gösterir.

403 yasak:

Sunucu isteği anladı, ancak bunu yerine getirmeyi reddediyor.

Güncelleştirme

Kullanım durumunuzdan, kullanıcının kimliği doğrulanmamış olduğu anlaşılıyor. 401'i geri alırdım.


Düzenle: RFC2616 eskimiş, gör RFC7231 ve RFC7235.


336
2017-07-21 07:28



Teşekkürler, bu benim için açıklığa kavuşturdu. Hem kullanıyorum - kimliği doğrulanmamış kullanıcılar için 401, yetersiz izinlere sahip kimliği doğrulanmış kullanıcılar için 403. - VirtuosiMedia
Reddetmedim ama bu cevabı oldukça yanıltıcı buluyorum. Hiçbir zaman yayınlanmayacak içerikte 403 yasak daha uygundur (asp.net'de .config dosyaları gibi). Ya bu ya da bir 404. imho, erişilebilecek bir şey için 403 döndürmek uygun olmazdı ama sadece doğru kimlik bilgilerine sahip değildin. Benim çözümüm kimlik bilgilerini değiştirmek için bir erişim reddedildi mesajı vermek olacaktır. Bu ya da 401. - Mel
"Cevap, istenen kaynağa uygulanabilecek bir meydan okuma içeren bir WWW-Authenticate başlık alanını (bölüm 14.47) içermelidir." HTTP stili kimlik doğrulaması kullanmak istemiyorsanız, 401 yanıt kodu uygun değildir. - Brilliand
Billiand'ı buraya geri döneceğim. Açıklama, "İstek zaten yetkilendirme bilgilerini içeriyorsa" şeklindedir. Bu, kimlik bilgisini sağlayan bir istek (örn., Bir RFC2617 Kimlik Doğrulama girişimi yanıtı) yanıtıysa, anlamına gelir. Esas olarak sunucunun "Hatalı hesap / şifre çifti, tekrar deneyin" demesine izin vermektir. Sorulan soruda, kullanıcı muhtemelen doğrulanmış ancak yetkilendirilmemiş. 401 bu şartlar için asla uygun bir cevap değildir. - ldrut
Brilliand haklı, 401 sadece HTTP Kimlik Doğrulama için uygundur. - Juampi


Diğer cevapların eksik olduğu bir şey ise, RFC 2616 bağlamındaki Kimlik Doğrulama ve Yetkilendirmenin YALNIZCA RFC 2617'nin HTTP Kimlik Doğrulama protokolüne başvurduğu anlaşılmalıdır. RFC2617 dışındaki şemalar ile doğrulama, HTTP durum kodlarında desteklenmez ve dikkate alınmaz. 401 veya 403 kullanılıp kullanılmayacağına karar verirken ..

Kısa ve ters

Yetkisiz, istemcinin RFC2617 kimlik doğrulaması olmadığını ve sunucunun kimlik doğrulama işlemini başlattığını gösterir. Yasak, istemcinin RFC2617 kimlik doğrulaması yaptığını ve yetkilendirmediğini veya sunucunun istenen kaynak için RFC2617'yi desteklemediğini gösterir.

Kendi roll-your-login giriş süreciniz varsa ve HTTP Authentication'ı kullanmıyorsanız, 403 her zaman doğru cevaptır ve 401 asla kullanılmamalıdır.

Detaylı ve Derinlik

RFC2616'dan

10.4.2 401 Yetkisiz

İstek, kullanıcı kimlik doğrulaması gerektiriyor. Yanıt, istenen kaynağa uygulanabilecek bir meydan okuma içeren bir WWW-Authenticate başlık alanı (bölüm 14.47) içermelidir. Müşteri, talebi uygun bir Yetkilendirme başlık alanı ile tekrarlayabilir (bölüm 14.8).

ve

10.4.4 403 Yasak   Sunucu isteği anladı, ancak bunu yerine getirmeyi reddediyor. Yetkilendirme yardımcı olmayacak ve istek tekrarlanmamalıdır.

Akılda tutulması gereken ilk şey, bu belgenin bağlamında "Kimlik Doğrulama" ve "Yetkilendirme" nin, RFC 2617'nin HTTP Kimlik Doğrulama protokollerine özel olarak atıfta bulunmasıdır. Bunlar, oluşturmuş olabileceğiniz kendi kendine ait kimlik doğrulama protokollerinden bahsetmezler. giriş sayfaları, vb kullanarak kimlik doğrulama ve RFC2617 dışındaki yöntemlerle yetkilendirmek için "giriş" kullanacağız

Yani asıl fark sorunun ne olduğu ya da çözüm olsa bile değil. Fark, sunucunun istemciyi bir sonraki adımda beklediğidir.

401, kaynağın sağlanamadığını belirtir, ancak sunucu, istemcinin HTTP Kimlik Doğrulaması aracılığıyla oturum açtığını ve işlemi başlatmak için yanıt üstbilgileri gönderdiğini İSTEYEN. Muhtemelen kaynaklara erişime izin verecek, muhtemelen yoktur, ancak bir deneme yapıp neler olduğunu görecek izinler vardır.

403, kaynağın sağlanamadığını ve mevcut kullanıcı için, bunu RFC2617 üzerinden çözmenin ve denemenin hiçbir noktasında olmadığını gösterir. Bunun nedeni, herhangi bir kimlik doğrulama seviyesinin yeterli olmadığı (örneğin bir IP kara listesinden dolayı) olduğu, ancak kullanıcının zaten yetkilendirilmiş olması ve yetki sahibi olmaması olabilir. RFC2617 modeli tek kullanıcılı, bir kimlik bilgisidir; bu nedenle, kullanıcının yetkilendirilebilecek ikinci bir kimlik bilgisi kümesi bulunmaması durumu göz ardı edilebilir. RFC2616 standartlarının ve tanımının dışında bir tür giriş sayfasının veya RFC2617 olmayan başka bir kimlik doğrulama protokolünün yardımcı olabileceği veya yardımcı olmayacağı anlamına gelmez veya ima edilmez.


Düzenle: RFC2616 eskimiş, gör RFC7231 ve RFC7235.


254
2018-02-05 17:14



IMHO, bu en iyi ve en doğru cevaptır. - Juampi
Peki kullanıcı, http kimlik doğrulaması gerektirmeyen bir sayfa istediğinde ne yapmalıyız? 403 durum kodunu gönder? - marcovtwout
Bu, benim sorularıma cevabı veren cevaptır. - Patrick
Bu önemlidir: "kendi kendine giriş sürecine sahip olursanız ve HTTP Kimlik Doğrulaması'nı kullanmazsanız, 403 her zaman doğru yanıttır ve 401 asla kullanılmamalıdır." - ggg
RFC7235, "kendi kendine yuvarla" veya alternatif yetkilendirme zorlukları sağlamaz mı? Uygulamamın giriş akışı neden sorununu bir form şeklinde sunmuyor? WWW-Authenticate header? Bir tarayıcı desteklemiyor olsa bile, React uygulamasım ... - jchook


Göre RFC 2616 (HTTP / 1.1) 403 şu durumlarda gönderilir:

Sunucu isteği anladı, ancak bunu yerine getirmeyi reddediyor. Yetkilendirme yardımcı olmayacak ve istek tekrarlanmamalıdır. İstek yöntemi HEAD değilse ve sunucu isteğin neden yerine getirilmediğini kamuya açıklamak isterse, kuruluşun reddedilme nedenini açıklamalıdır. Sunucu bu bilgiyi istemciye sunmak istemiyorsa, durum kodu 404 (Bulunamadı) yerine kullanılabilir.

Başka bir ifadeyle, eğer müşteri doğrulayarak kaynaklara erişebilirse, 401 gönderilmelidir.


95
2017-07-21 07:26



Eğer erişip erişemeyecekleri belli değilse? 3 kullanıcı seviyem olduğunu belirtin - Genel, Üyeler ve Premium Üyeler. Sayfanın yalnızca Premium Üyeler olduğunu varsayalım. Genel bir kullanıcı temel olarak kimliği doğrulanmamıştır ve could Oturum açtıklarında Üyeler veya Premium Üyeler'de olmak. Üye kullanıcı seviyesi için bir 403 uygun görünür. Premium Üyeler için, 401. Bununla birlikte, halka ne hizmet ediyorsunuz? - VirtuosiMedia
imho, bu en doğru cevaptır. Bu, uygulamaya bağlı olmakla birlikte, genellikle, kimliği doğrulanmış bir kullanıcının bir kaynak üzerinde yeterli hakları yoksa, kimlik bilgilerini değiştirmenin veya 401 göndermenin bir yolunu belirtmek isteyebilirsiniz. Bence 403, hiçbir zaman sunulmayan içerik için en uygun olanıdır. ASP.NET'te bu, web.config dosyaları * .resx dosyaları vs. anlamına gelecektir, çünkü hangi kullanıcının oturum açtığı önemli değil, bu dosyalar ASLA sunulmayacak, böylece tekrar denemenin bir anlamı kalmayacaktır. - Mel
Bu cevap daha fazla yükseltmeyi hak ediyor. @Mel ile aynı fikirdeyim. - Camilo Martin
+1, ancak belirsiz bir +1. Mantıksal sonuç, bir 403'ün asla 401 ya da 404 olarak iade edilmemesi, kesinlikle daha iyi bir yanıt olacaktır. - CurtainDog
@Mel Müşteri tarafından erişilememesi gereken bir dosyanın 404 olması gerektiğini düşünüyorum. Bu, sisteme dahil olan bir dosyadır; Dışarıda var olduğunu bile bilmemeli. Bir 403'ü iade ederek, müşterinin var olduğunu bildirirsiniz, bu bilgiyi hackerlara vermenize gerek yoktur. 403 için spec diyor 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). - Juan Mendes


TL; DR versiyonu

    Kaynak al, var mı?
    | |
    | |
    v v
NO: 404 EVET: Doğrulanmış mı?
             | |
             | |
             v v
           NO: 401 EVET: Kaynağa erişebilir mi?
           (veya: 404) | |
           veya 301 | |
           yönlendirme v v
           NO oturum açma için: 403 OK 200, 301, ...

Çekler genellikle şu sırayla yapılır:

  • Oturum açılmadıysa veya oturumun süresi dolduysa 401
  • Kullanıcı kaynağa erişim izni yoksa 403
  • Kaynak yoksa 404

YETKİSİZ: İsteğin gerektirdiğini belirten durum kodu (401) kimlik doğrulama. Sunucu tarafından bilinmiyor kullanıcı / aracı. Diğer kimlik bilgileri ile tekrar edebilir. NOT: Bu, 'yetkisiz' yerine 'kimliği doğrulanmamış' olarak adlandırılmış olması gerektiği için kafa karıştırıcıdır.

YASAK: Sunucunun talebi anladığını ancak yerine getirmeyi reddettiğini belirten durum kodu (403). Sunucu tarafından bilinen kullanıcı / aracı yetersiz kimlik bilgisi. Yinelenen istek çalışmaz.

BULUNAMADI: İstenen kaynağın mevcut olmadığını belirten durum kodu (404). Kullanıcı / ajan bilinen ancak sunucu, kaynakla ilgili hiçbir şey ortaya çıkarmaz, mevcut değilse yapar. Tekrarlama işe yaramaz. Bu 404'ün özel bir kullanımıdır (örneğin github yapar).


46
2018-02-23 11:00



github.com/for-GET/http-decision-diagram - Christophe Roussy
Örneğin giriş yaptım ve bir sayfaya erişebiliyorum ancak benim için izin verilmedi. Hangi durum kodu dönecek? - barteloma
@bookmarker Loggin in, ilk adım olan kimlik doğrulaması olarak adlandırılır. Bu nedenle, giriş yaptıktan sonra izniniz yoksa 403 Yasaklanacaktır (yetersiz kimlik bilgileri, yeterli izinlere sahip olmadığınız anlamına gelir). - Christophe Roussy
Açık ve basit bir açıklama. Sadece ihtiyacım olan şey. - Estevez


Başka bir kullanıcı olarak kimlik doğrulaması istenirse, istenen kaynağa erişim izni verilirse, 401 Yetkisiz olarak iade edilmelidir. 403 Yasak, daha çok, kaynağa erişim herkese yasaklandığında veya belirli bir ağ ile sınırlı olduğunda veya kimlik doğrulamasıyla ilgili olmadığı sürece, yalnızca SSL üzerinden izin verildiğinde kullanılır.

RFC 7235'den (Köprü Metni Aktarım Protokolü (HTTP / 1.1): Kimlik Doğrulama):

3.1. 401 Yetkisiz

401 (Yetkisiz) durum kodu, isteğin olduğunu gösterir.   geçerli kimlik doğrulama bilgileri olmadığı için uygulanmadı   hedef kaynak için. Kökeni sunucu bir göndermek gerekir   WWW-En az bir tane içeren başlık alanını (Bölüm 4.4) doğrulayın   hedef kaynak için geçerli meydan okuma. İstek varsa   dahil kimlik doğrulama bilgileri, daha sonra 401 yanıtı   bunlar için yetkilendirmenin reddedildiğini belirtir   kimlik bilgileri. Müşteri, talebi yeni ile tekrarlayabilir veya   Yetkilendirme başlığı alanı değiştirildi (Bölüm 4.1). 401 ise   yanıt, önceki yanıtla aynı sorunu içerir ve   kullanıcı aracısı en az bir kez kimlik doğrulamayı zaten denedi, ardından   kullanıcı aracısı ilişikteki sunumu   Kullanıcı, genellikle ilgili teşhis bilgilerini içerdiğinden.

Ve bu RFC 2616'dan:

10.4.4 403 Yasak

Sunucu isteği anladı, ancak bunu yerine getirmeyi reddediyor.
Yetkilendirme yardımcı olmayacak ve istek tekrarlanmamalıdır.
  İstek yöntemi HEAD değilse ve sunucu yapmak istiyorsa
  Talebin neden karşılanmadığını kamuoyuna açıklamak zorundadır.   varlık reddi nedeni. Sunucu istemiyorsa   Bu bilgiyi istemciye, 404 durum koduyla kullanılabilir hale getirin
  (Bulunamadı) yerine kullanılabilir.

Düzenleme: RFC 7231 (Köprü Metni Aktarım Protokolü (HTTP / 1.1): Anlambilim ve İçerik) 403'ün anlamını değiştirir:

6.5.3. 403 yasak

403 (Yasak) durum kodu sunucunun olduğunu gösterir   talebi anladı ancak yetkilendirmeyi reddetti. Bir sunucu   Talebin neden yasaklandığını halka arz etmek   Yanıt yükündeki (varsa) bu sebebi açıklayın.

İstekte kimlik doğrulama bilgileri sağlandıysa,
  Sunucu, erişim izni vermek için yetersiz olduğunu düşünür. Müşteri
  İsteği otomatik olarak aynı şekilde tekrarlamamalı
  kimlik bilgileri. Müşteri talebi yeni veya farklı bir şekilde tekrarlayabilir   kimlik bilgileri. Ancak, nedenlerden dolayı bir talep yasaklanmış olabilir
  kimlik bilgileri ile ilgisiz.

Mevcut varlığını "gizlemek" isteyen bir kaynak sunucu
  Yasak hedef kaynak yerine bir durum kodu ile cevap verebilir
  404 Bulunamadı).

Böylece, bir 403 şimdi bir şey hakkında olabilir. Yeni kimlik bilgileri sağlamak yardımcı olabilir ... ya da olmayabilir.


37
2018-02-27 09:44



Bu ilginç. RFC 7231 ve RFC 7235 dayanarak, 401 ve 403 arasında belirgin bir ayrım görmüyorum - Brian
403 "Seni biliyorum ama bu kaynağı göremezsin." Karmaşa için bir sebep yok. - Michael Blackburn
"İstek kimlik doğrulama kimlik bilgilerini içeriyorsa, 401 yanıtı bu kimlik bilgileri için yetkilendirmenin reddedildiğini gösterir. İstemci isteği yeni veya değiştirilen Yetkilendirme başlık alanıyla tekrarlayabilir (Bölüm 4.1)." Ancak, "4.2. 'Yetkilendirme' başlık alanı, bir kullanıcı aracısının kendisini bir kök sunucu ile doğrulamasını sağlar". RFC7235'te "yetkilendirme" terimini "kimlik doğrulaması" gibi kullanıyorlar. Bu durumda, kimliği doğrulanmış ancak yetkilendirilmemiş bir kullanıcının 401'i alması, 403'ü almaması gerekir. - arcuri82


Bu daha eski bir sorudur, ancak hiçbir zaman gerçekten yetişmeyen bir seçenek 404'ü geri getirmekti. Güvenlik açısından bakıldığında, en yüksek oyu alan cevap potansiyelden muzdariptir. bilgi sızıntısı güvenlik açığı. Örneğin, söz konusu güvenli web sayfasının bir sistem yönetici sayfası olduğunu veya daha yaygın olarak, kullanıcının erişimi olmayan bir sistemdeki bir kaydı olduğunu varsayalım. İdeal olarak, kötü niyetli bir kullanıcının, orada bir sayfaya / kaydın olduğunu bilmelerine bile gerek duymazsınız. Böyle bir şey oluşturduğumda, kimlik doğrulamasız / yetkisiz istekleri dahili bir günlüğe kaydetmeye çalışacağım, ancak bir 404 döndüreceğim.

OWASP bazı daha fazla bilgi Bir saldırganın bu tür bilgileri bir saldırının parçası olarak nasıl kullanabileceği hakkında.


20
2017-12-25 09:09



Önceki cevaplarda 404'ün kullanımı belirtilmiştir. Siz bir noktadasınız: bilgi sızması ve bu, kendi kimlik doğrulama / yetkilendirme planını kullanan herkes için önemli bir konu olmalıdır. OWASP'yi belirtmek için +1. - Dave Watts


Bu soru bir süre önce sorulmuştu, ama insanların düşüncesi devam ediyor.

Bölüm 6.5.3 Bu taslakta (Fielding ve Reschke tarafından yazılmıştır) 403 durum kodu, belgelenene biraz farklı bir anlam verir. RFC 2616.

Bir dizi popüler web sunucusu ve çerçeve tarafından kullanılan kimlik doğrulama ve yetkilendirme şemalarında neler olduğunu yansıtır.

Ben en belirgin olduğunu düşünüyorum bence vurguladı.

6.5.3. 403 yasak

403 (Yasak) durum kodu, sunucunun isteği anladığını, ancak yetkilendirmeyi reddettiğini gösterir. Talebin neden yasaklandığını kamuoyuna açıklamak isteyen bir sunucu, yanıt yükündeki (varsa) bu sebebi açıklayabilir.

İstekte kimlik doğrulama bilgileri sağlandıysa, sunucu erişim izni vermek için yetersiz olduğunu düşünür. İstemci, aynı kimlik bilgileriyle talebi tekrarlamamalıdır. Müşteri, isteği yeni veya farklı kimlik bilgileriyle tekrarlayabilir.  Ancak, kimlik bilgileriyle ilgili olmayan nedenlerden dolayı bir talep yasaklanmış olabilir.

Yasak bir hedef kaynağın mevcut varlığını "gizlemek" isteyen bir kaynak sunucu, bunun yerine 404 (Bulunamadı) durum koduyla yanıt verir.

Kullandığınız her türlü sözleşme, önemli olan siteniz / API'niz arasında tekdüzelik sağlamaktır.


19
2018-05-22 10:54



Taslak onaylandı ve şimdi RFC 7231. - Vebjorn Ljosa


TL; DR

  • 401: Kimlik doğrulamasıyla ilgili bir reddetme
  • 403: Kimlik doğrulaması yapmaması gereken bir reddetme

Pratik Örnekler

Eğer apache  kimlik doğrulaması gerektirir (üzerinden .htaccess) ve sen vur Cancel, bir cevap verecektir 401 Authorization Required

Eğer nginx bir dosya bulur, ancak yok erişim hakları (kullanıcı / grup) okumak / erişmek için bu ile cevap verecektir 403 Forbidden

RFC (2616 Bölüm 10)

401 Yetkisiz (10.4.2)

Anlam 1: Kimlik doğrulaması gerekiyor

İstek, kullanıcı kimlik doğrulaması gerektiriyor. ...

2 Anlamı: Kimlik doğrulama yetersiz

... İstek zaten yetkilendirme kimlik bilgilerini içeriyorsa, 401 yanıtı bu kimlik bilgileri için yetkilendirmenin reddedildiğini gösterir. ...

403 Yasak (10.4.4)

Anlamı: Kimlik doğrulamasıyla ilgisiz

... Yetkilendirme yardımcı olmayacak ...

Daha fazla detay:

  • Sunucu isteği anladı, ancak bunu yerine getirmeyi reddediyor.

  • Varlıktaki reddedilme nedenini açıklamalıdır

  • Durum kodu 404 (Bulunamadı) yerine kullanılabilir

    (Sunucu bu bilgiyi istemciden korumak istiyorsa)


9
2018-02-25 09:03