403 Forbidden vs 401 Yetkisiz HTTP yan─▒tlar─▒


Al─▒nan cevaba git


Var olan ancak yeterli ayr─▒cal─▒klara sahip olmayan bir kullan─▒c─▒ i├žin (giri┼č yapmam─▒┼č veya uygun kullan─▒c─▒ grubuna ait de─čil) bir web sayfas─▒ i├žin, uygun HTTP yan─▒t─▒ nedir? 401? 403? Ba┼čka bir ┼čey? ┼×imdiye kadar okudu─čum her ┼čey aras─▒ndaki fark ├žok net de─čil. Her cevap i├žin hangi kullan─▒m durumlar─▒ uygundur?


2490









Cevap say─▒s─▒n─▒ say: 15






Daniel Irvine'den net bir a├ž─▒klama :

401 Yetkisiz , bir kimlik do─črulama hatalar─▒ i├žin HTTP durum kodu olan bir sorun var . Ve i┼čte bu sadece: kimlik do─črulama i├žin, yetkilendirme i├žin de─čil. S├Âyl├╝yorum sunucusu 401 yan─▒t─▒ haz─▒rlamak Alma, ÔÇťE─čer do─črulanm─▒┼č-ya hepsi de─čil de do─črulanm─▒┼č de─čil ya do─črulanm─▒┼č olan yanl─▒┼č ama reauthenticate ve tekrar deneyin.ÔÇŁ Size yard─▒m etmek i├žin, her zaman bir i├žerecektir WWW-Authenticate a├ž─▒klar ba┼čl─▒─č─▒n─▒ kimlik do─črulamas─▒ nas─▒l yap─▒l─▒r.

Bu, web uygulaman─▒z taraf─▒ndan de─čil, genellikle web sunucunuz taraf─▒ndan d├Ând├╝r├╝len bir cevapt─▒r.

Ayn─▒ zamanda ├žok ge├žici bir ┼čey; sunucu tekrar denemenizi istiyor.

Bu nedenle, yetkilendirme i├žin 403 Yasakl─▒ yan─▒t─▒ kullan─▒yorum. Kal─▒c─▒, uygulama mant─▒─č─▒ma ba─čl─▒ ve 401'den daha somut bir yan─▒t.

403 yan─▒t almak sunucu size ┼čunu s├Âyl├╝yor: ÔÇť├ľz├╝r dilerim. Kim oldu─čunuzu biliyorum - kim oldu─čunuzu s├Âyledi─činize inan─▒yorum - ancak bu kayna─ča eri┼čim izniniz yok. Belki sistem y├Âneticisine g├╝zel bir ┼čekilde sorarsan─▒z izin al─▒rs─▒n─▒z. Ama l├╝tfen ├ž─▒kmaz─▒n de─či┼činceye kadar beni bir daha rahats─▒z etme. ÔÇŁ

├ľzet olarak, eksik veya hatal─▒ kimlik do─črulamas─▒ i├žin 401 Yetkisiz bir yan─▒t kullan─▒lmal─▒ ve daha sonra, kullan─▒c─▒ kimli─či do─čruland─▒─č─▒nda ancak istenen kaynakta istenen i┼člemi ger├žekle┼čtirme yetkisi bulunmad─▒─č─▒nda 403 Yasakl─▒ bir yan─▒t kullan─▒lmal─▒d─▒r.

Http durum kodlar─▒n─▒n nas─▒l kullan─▒lmas─▒ gerekti─čine dair bir ba┼čka g├╝zel resimsel format .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


3721







RFC2616'ya bak─▒n─▒z :

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 yerine getirmeyi reddediyor.

G├╝ncelle┼čtirme

Kullan─▒m durumunuzdan, kullan─▒c─▒n─▒n kimli─či do─črulanmad─▒─č─▒ anla┼č─▒l─▒yor. 401'i iade ederdim.


D├╝zenleme: RFC2616 eskidir, bkz. RFC7231 ve RFC7235 .


376


2010-07-21





Di─čer cevaplar─▒n eksik oldu─ču bir husus, RFC 2616 ba─člam─▒nda Kimlik Do─črulama ve Yetkilendirmenin SADECE RFC 2617'nin HTTP Kimlik Do─črulama protokol├╝ne at─▒fta bulunmas─▒ gerekti─čidir. RFC2617 d─▒┼č─▒ndaki ┼čemalarla kimlik do─črulamas─▒, HTTP durum kodlar─▒nda desteklenmez ve dikkate al─▒nmaz. 401 veya 403 kullan─▒l─▒p kullan─▒lmayaca─č─▒na karar verirken.

K─▒sa ve Terse

─░zinsiz, istemcinin RFC2617'nin kimli─činin do─črulanmad─▒─č─▒n─▒ ve sunucunun kimlik do─črulama i┼člemini ba┼člatt─▒─č─▒n─▒ g├Âsterir. Yasak, istemcinin RFC2617'nin kimli─činin do─črulanm─▒┼č oldu─čunu ve yetkisi olmad─▒─č─▒n─▒ veya sunucunun istenen kaynak i├žin RFC2617'yi desteklemedi─čini g├Âsterir.

Yani, kendi roll-your kendi giri┼č i┼čleminiz varsa ve asla HTTP Authentication kullanm─▒yorsan─▒z, 403 her zaman do─čru cevapt─▒r ve 401 asla kullan─▒lmamal─▒d─▒r.

Detayl─▒ ve Derinlemesine

RFC2616'dan

10.4.2 401 Yetkisiz

─░stek, kullan─▒c─▒ kimlik do─črulamas─▒ gerektiriyor. Yan─▒t, istenen kayna─ča uygulanabilir bir meydan okuma i├žeren bir WWW-Kimlik do─črulama ba┼čl─▒k alan─▒ i├žermelidir (b├Âl├╝m 14.47). M├╝┼čteri, iste─či uygun bir Yetkilendirme ba┼čl─▒k alan─▒yla tekrarlayabilir (b├Âl├╝m 14.8).

ve

10.4.4 403 Yasak Sunucu iste─či anlad─▒ ancak bunu yapmay─▒ reddediyor. Yetkilendirme yard─▒mc─▒ olmaz ve istek tekrar edilmemelidir.

Ak─▒lda tutulmas─▒ gereken ilk ┼čey, bu belge ba─člam─▒nda "Kimlik Do─črulama" ve "Yetkilendirme" nin ├Âzellikle RFC 2617'den gelen HTTP Kimlik Do─črulama protokollerine at─▒fta bulunmas─▒d─▒r. Kendi olu┼čturdu─čunuz kimlik do─črulama protokollerine at─▒fta bulunmazlar. giri┼č sayfalar─▒n─▒ vb. kullanarak "giri┼č" kullanaca─č─▒m. RFC2617 d─▒┼č─▒ndaki y├Ântemlerle kimlik do─črulama ve yetkilendirme i├žin kullanaca─č─▒m.

Dolay─▒s─▒yla as─▒l fark, sorunun ne oldu─ču ya da bir ├ž├Âz├╝m olsa bile de─čildir. Aradaki fark, sunucunun m├╝┼čteriden daha sonra yapmas─▒n─▒ bekledi─či ┼čeydir.

401, kayna─č─▒n sa─članamad─▒─č─▒n─▒, ancak sunucunun istemcinin HTTP Kimlik Do─črulama yoluyla oturum a├žt─▒─č─▒n─▒ ve i┼člemi ba┼člatmak i├žin yan─▒t ba┼čl─▒klar─▒ g├Ânderdi─čini ─░STED─░R. Muhtemelen yok, kayna─ča eri┼čime izin verecek yetkiler var, muhtemelen yok, ama bir deneyelim ve ne olaca─č─▒n─▒ g├Ârelim.

403 kayna─č─▒n sa─članamad─▒─č─▒n─▒ ve mevcut kullan─▒c─▒ i├žin bunu RFC2617 ile ├ž├Âzmenin bir yolu olmad─▒─č─▒n─▒ ve denemenin bir anlam─▒ olmad─▒─č─▒n─▒ belirtir. Bunun nedeni, hi├žbir kimlik do─črulama seviyesinin yeterli olmad─▒─č─▒ (├Ârne─čin bir IP kara listesi nedeniyle) oldu─ču, ancak kullan─▒c─▒n─▒n zaten do─črulanm─▒┼č oldu─ču ve yetkisinin olmad─▒─č─▒ olabilir. RFC2617 modeli bir kullan─▒c─▒, bir kimlik bilgisi oldu─čundan, kullan─▒c─▒n─▒n yetkilendirilebilecek ikinci bir kimlik bilgileri k├╝mesine sahip olabilece─či durumlar g├Âz ard─▒ edilebilir. RFC2616 standartlar─▒n─▒n ve tan─▒m─▒n─▒n d─▒┼č─▒nda bir t├╝r giri┼č sayfas─▒ veya di─čer RFC2617 kimlik do─črulama protokol├╝n├╝n yard─▒mc─▒ olabilece─či veya yard─▒m edemeyece─či anlam─▒na gelmez.


D├╝zenleme: RFC2616 eskidir, bkz. RFC7231 ve RFC7235 .


286







   Kaynak var m─▒? (e─čer ├Âzelse, s─▒k s─▒k kontrol ettikten sonra kontrol edilir)
    | |
 NO | | EVET
    vv
   404 Oturum a├žm─▒┼č m─▒? (kimli─či do─črulanm─▒┼č, aka oturumu var)
   veya | |
   401 NO | | EVET
   403 | |
              vv
              401 Kayna─ča eri┼čebilir mi? (izin, yetkili)?
         (404 a├ž─▒klanmad─▒) | |
             veya 301 NO | | EVET
             y├Ânlendirme | |
             giri┼č yapmak i├žin vv
                              403 OK 200, 301, ...
                      (veya 404: a├ž─▒─ča vurma yok)

Kontroller genellikle bu s─▒raya g├Âre yap─▒l─▒r:

  • Oturum a├ž─▒lmad─▒ysa veya oturum s├╝resi dolduysa 401
  • Kullan─▒c─▒ kayna─ča eri┼čim iznine sahip de─čilse 403 (dosya, json, ...)
  • 404 kaynak yoksa (veya herhangi bir ┼čeyi a├ž─▒─ča vurmaya istekli de─čilse)

YETK─░S─░ZLE┼×T─░R─░LD─░ : ─░ste─čin kimlik do─črulama gerektirdi─čini belirten durum kodu (401) , bu genellikle kullan─▒c─▒n─▒n oturum a├žmas─▒ gerekti─či anlam─▒na gelir (oturum). Sunucu taraf─▒ndan bilinmeyen kullan─▒c─▒ / ajan. Di─čer kimlik bilgileri ile tekrarlayabilir. NOT: Bu, 'yetkisiz' yerine 'do─črulanmam─▒┼č' olarak adland─▒r─▒lm─▒┼č olmas─▒ gerekti─či i├žin kafa kar─▒┼čt─▒r─▒c─▒d─▒r. Bu, oturum s├╝resi doldu─čunda oturum a├žt─▒ktan sonra da olabilir. ├ľzel durum: Kayna─č─▒n varl─▒─č─▒n─▒ veya varl─▒─č─▒n─▒ ortaya ├ž─▒karmaktan ka├ž─▒nmak i├žin 404 yerine kullan─▒labilir (credits @gingerCodeNinja)

FORBIDDEN : Sunucuyu belirten durum kodu (403) iste─či anlad─▒ fakat yerine getirmeyi reddetti. Sunucu taraf─▒ndan bilinen kullan─▒c─▒ / arac─▒ ancak kimlik bilgileri yetersiz . Yinelenen istek, k─▒sa bir s├╝re i├žinde pek olas─▒ olmayan kimlik bilgileri de─či┼čtirilmedik├že ├žal─▒┼čmaz. ├ľzel durum: Kayna─č─▒n varl─▒─č─▒n─▒ veya varl─▒─č─▒n─▒ ortaya ├ž─▒karmaktan ka├ž─▒nmak i├žin 404 yerine kullan─▒labilir (credits @gingerCodeNinja)

NOT : ─░stenilen kayna─č─▒n mevcut olmad─▒─č─▒n─▒ belirten durum kodu (404). Kullan─▒c─▒ / arac─▒ biliniyor, ancak sunucu kaynakla ilgili hi├žbir ┼čey a├ž─▒─ča ├ž─▒karmayacak, sanki yokmu┼č gibi. Tekrarlama i┼če yaramayacak. Bu, 404'├╝n ├Âzel bir kullan─▒m─▒d─▒r (├Ârne─čin, github bunu yapar).


117







RFC 2616'ya g├Âre (HTTP / 1.1) 403 ne zaman g├Ânderilir:

Sunucu iste─či anlad─▒, ancak yerine getirmeyi reddediyor. Yetkilendirme yard─▒mc─▒ olmaz ve istek tekrar edilmemelidir. ─░stek y├Ântemi HEAD de─čilse ve sunucu iste─čin neden yerine getirilmedi─čini a├ž─▒klamak isterse, kurulu┼čtaki reddin nedenini a├ž─▒klamal─▒d─▒r. Sunucu bu bilgiyi m├╝┼čteriye sunmak istemezse, 404 durum kodu (Bulunamad─▒) yerine kullan─▒labilir.

Ba┼čka bir deyi┼čle, m├╝┼čteri kayna─ča kimlik do─črulamas─▒ yaparak eri┼čebilirse, 401 g├Ânderilmelidir.


108







HTTP kimlik do─črulamas─▒n─▒n ( WWW-Kimlik Do─črulama ve Yetkilendirme ba┼čl─▒klar─▒) kullan─▒mda oldu─čunu varsayarsak , ba┼čka bir kullan─▒c─▒n─▒n kimlik do─črulamas─▒ istenen kayna─ča eri┼čim izni verirse, 401 Yetkilendirilmemi┼č d├Ând├╝r├╝lmelidir.

403 Yasak, kayna─ča eri┼čim herkese yasak oldu─čunda veya belirli bir a─čla s─▒n─▒rland─▒r─▒ld─▒─č─▒nda veya HTTP kimlik do─črulamas─▒ ile ilgili olmad─▒─č─▒ s├╝rece, yaln─▒zca SSL ├╝zerinden izin verildi─činde kullan─▒l─▒r.

HTTP kimlik do─črulamas─▒ kullan─▒lm─▒yorsa ve hizmet bug├╝nlerde norm oldu─ču gibi ├žerez tabanl─▒ bir kimlik do─črulama ┼čemas─▒ varsa, bir 403 veya 404 d├Ând├╝r├╝lmelidir.

401 ile ilgili olarak, bu RFC 7235'ten (K├Âpr├╝ Metni Aktar─▒m Protokol├╝ (HTTP / 1.1): Kimlik Do─črulama):

3.1. 401 Yetkisiz

401 (Yetkisiz) durum kodu, hedef kaynak i├žin ge├žerli kimlik do─črulama bilgileri bulunmad─▒─č─▒ndan iste─čin uygulanmad─▒─č─▒n─▒ g├Âsterir. Kaynak sunucu, hedef kayna─ča uygulanabilecek en az bir meydan okuma i├žeren bir WWW-Kimlik Do─črulama ba┼čl─▒k alan─▒ g├Ândermelidir (B├Âl├╝m 4.4). ─░stek, kimlik do─črulama bilgilerini i├žeriyorsa, 401 yan─▒t─▒ bu kimlik bilgileri i├žin yetkilendirmenin reddedildi─čini g├Âsterir . M├╝┼čteri, iste─či yeni veya de─či┼čtirilmi┼č bir Yetkilendirme ba┼čl─▒k alan─▒yla tekrarlayabilir (B├Âl├╝m 4.1). 401 yan─▒t─▒ ├Ânceki yan─▒tla ayn─▒ zorlu─ču i├žeriyorsa ve kullan─▒c─▒ arac─▒s─▒ en az bir kez kimlik do─črulamas─▒ yapmay─▒ denemi┼čse, kullan─▒c─▒ arac─▒s─▒, genellikle ilgili te┼čhis bilgilerini i├žerdi─činden, kullan─▒c─▒ya ekteki temsili sunmak zorundad─▒r.

403 (ve 404) anlambilimi zaman i├žinde de─či┼čmi┼čtir. Bu 1999'dan (RFC 2616):

10.4.4 403 Yasak

Sunucu iste─či anlad─▒, ancak yerine getirmeyi reddediyor.
Yetkilendirme yard─▒mc─▒ olmaz ve istek tekrar edilmemelidir.
─░stek y├Ântemi HEAD de─čilse ve sunucu
iste─čin neden yerine getirilmedi─čini a├ž─▒klamak isterse, kurulu┼čtaki reddin nedenini a├ž─▒klamal─▒d─▒r. Sunucu bu bilgiyi m├╝┼čteriye sunmak istemezse, 404 durum kodu
(Bulunamad─▒) kullan─▒labilir.

2014 y─▒l─▒nda RFC 7231 (K├Âpr├╝ Metni Aktar─▒m Protokol├╝ (HTTP / 1.1): Semantik ve ─░├žerik) 403'├╝n anlam─▒n─▒ de─či┼čtirdi:

6.5.3. 403 yasak

403 (Yasak) durum kodu, sunucunun iste─či anlad─▒─č─▒n─▒ ancak izin vermeyi reddetti─čini belirtir. ─░ste─čin neden yasakland─▒─č─▒n─▒ kamuoyuna a├ž─▒klamak isteyen bir sunucu yan─▒t y├╝k├╝nde (varsa) bu nedeni a├ž─▒klayabilir.

─░ste─če kimlik do─črulama bilgileri girildiyse,
sunucu eri┼čim izni vermek i├žin yetersiz oldu─čunu d├╝┼č├╝n├╝r. M├╝┼čteri
, iste─či ayn─▒
kimlik bilgileriyle otomatik olarak DE─×─░LMEMEL─░D─░R. M├╝┼čteri, iste─či yeni veya farkl─▒ kimlik bilgileriyle tekrarlayabilir. Ancak,
kimlik bilgileriyle ilgisi olmayan nedenlerden dolay─▒ talepte bulunulmas─▒ yasaklanabilir .


Yasaklanm─▒┼č bir hedef kayna─č─▒n mevcut varl─▒─č─▒n─▒ "gizlemek" isteyen bir ba┼člang─▒├ž ÔÇőÔÇősunucusu, bunun yerine
404 durum koduyla (Bulunamad─▒) yan─▒t verebilir .

Dolay─▒s─▒yla, bir 403 (veya bir 404) ┼čimdi herhangi bir ┼čey i├žin anlam─▒na gelebilir. Yeni kimlik bilgileri sa─člamak yard─▒mc─▒ olabilir ... veya olmayabilir.

Bunun de─či┼čmesinin nedeninin RFC 2616 oldu─čunu d├╝┼č├╝n├╝yorum. Uygulamada bug├╝n├╝n Web uygulamalar─▒, ├Ârne─čin formlar ve ├žerezler kullanarak ├Âzel kimlik do─črulama d├╝zenleri olu┼čtururken HTTP kimlik do─črulamas─▒n─▒n kullan─▒laca─č─▒ varsay─▒lm─▒┼čt─▒r.


44







Bu eski bir soru ama ger├žekten yeti┼čmi┼č hi├žbir zaman bir se├ženek g├╝venlik a├ž─▒s─▒ndan bak─▒ld─▒─č─▒nda bir 404. d├Ânmek oldu en y├╝ksek potansiyel gelen cevap ac─▒lar─▒n─▒ olarak bilgi s─▒zd─▒rma g├╝venlik a├ž─▒─č─▒ . ├ľrne─čin, s├Âz konusu g├╝venli web sayfas─▒n─▒n bir sistem y├Âneticisi sayfas─▒ veya belki de daha yayg─▒n olarak, kullan─▒c─▒n─▒n eri┼čemedi─či bir sistemde bir kay─▒t oldu─čunu s├Âyleyin. ─░deal olarak, k├Ât├╝ niyetli bir kullan─▒c─▒n─▒n eri┼čiminin olmad─▒─č─▒ bir sayfa / kay─▒t oldu─čunu bilmesini bile istemezsiniz. B├Âyle bir ┼čey in┼ča ederken, do─črulanmam─▒┼č / yetkisiz istekleri dahili bir g├╝nl├╝─če kaydetmeye ├žal─▒┼čaca─č─▒m, ancak bir 404 d├Ând├╝rece─čim.

OWASP, bir sald─▒rgan─▒n bu t├╝r bilgileri sald─▒r─▒n─▒n bir par├žas─▒ olarak nas─▒l kullanabilece─či hakk─▒nda daha fazla bilgiye sahiptir .


26







Bu soru bir s├╝re ├Ânce sorulmu┼čtu, ama insanlar─▒n d├╝┼č├╝ncesi devam ediyor.

http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22%23section-6.5.3#section-6.5.3Bu taslaktaki B├Âl├╝m 6.5.3 (Fielding ve Reschke taraf─▒ndan haz─▒rlanan), 403 durum kodunu RFC 2616'da belgelenenlerden biraz farkl─▒ bir anlam ifade etmektedir .

Bir├žok pop├╝ler web sunucusu ve ├žer├ževenin kulland─▒─č─▒ kimlik do─črulama ve yetkilendirme ┼čemalar─▒nda neler oldu─čunu yans─▒t─▒r.

En belirgin oldu─čunu d├╝┼č├╝nd├╝─č├╝m par├žay─▒ vurgulad─▒m.

6.5.3. 403 yasak

403 (Yasak) durum kodu, sunucunun iste─či anlad─▒─č─▒n─▒ ancak izin vermeyi reddetti─čini belirtir. ─░ste─čin neden yasakland─▒─č─▒n─▒ kamuoyuna a├ž─▒klamak isteyen bir sunucu yan─▒t y├╝k├╝nde (varsa) bu nedeni a├ž─▒klayabilir.

─░ste─če kimlik do─črulama bilgileri girildiyse, sunucu eri┼čim izni vermek i├žin yetersiz oldu─čunu d├╝┼č├╝n├╝r. M├╝┼čteri, talebi ayn─▒ kimlik bilgileriyle tekrarlamamal─▒d─▒r. M├╝┼čteri, iste─či yeni veya farkl─▒ kimlik bilgileriyle tekrarlayabilir. Ancak, kimlik bilgileriyle ilgisi olmayan nedenlerden dolay─▒ talepte bulunulmas─▒ yasaklanabilir.

Yasaklanm─▒┼č bir hedef kayna─č─▒n mevcut varl─▒─č─▒n─▒ "gizlemek" isteyen bir ba┼člang─▒├ž ÔÇőÔÇősunucusu, bunun yerine 404 durum koduyla (Bulunamad─▒) yan─▒t verebilir.

Hangi s├Âzle┼čmeyi kullan─▒rsan─▒z kullan─▒n, ├Ânemli olan sitenize / API'nize e┼čitlik sa─člamakt─▒r.


21







TL; DR

  • 401: Kimlik do─črulamas─▒ ile ilgili bir ret
  • 403: Kimlik do─črulama ile ilgisi olmayan bir ret

Pratik ├Ârnekler

E─čer apache kimlik do─črulamas─▒ gerektiriyor (arac─▒l─▒─č─▒yla .htaccess ) ve vurmak Cancel , bu a ile yan─▒t verecektir 401 Authorization Required

Nginx bir dosya bulursa, ancak okumak / eri┼čmek i├žin eri┼čim haklar─▒na (kullan─▒c─▒ / grup) sahip de─čilse , 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─črulama ile ilgisi yok

... Yetkilendirme yard─▒mc─▒ olmaz ...

Daha fazla detay:

  • Sunucu iste─či anlad─▒, ancak yerine getirmeyi reddediyor.

  • ─░┼čletmedeki reddin nedenini a├ž─▒klamal─▒d─▒r.

  • Bunun yerine 404 durum kodu (Bulunamad─▒) kullan─▒labilir

    (Sunucu bu bilgiyi istemciden korumak istiyorsa)


11







Giri┼č yapmam─▒┼člar veya uygun kullan─▒c─▒ grubuna ait de─čiller

─░ki farkl─▒ vaka belirttiniz; her durumun farkl─▒ bir yan─▒t─▒ olmal─▒d─▒r:

  1. E─čer giri┼č yapmam─▒┼člarsa 401 Yetkisiz
  2. Giri┼č yapm─▒┼člar ancak uygun kullan─▒c─▒ grubuna ait de─čillerse, 403 Yasaklanmal─▒

Bu cevaba verilen yorumlara dayanarak RFC'ye dikkat edin:

Kullan─▒c─▒ oturum a├žmad─▒ysa, kimli─či do─črulanmaz, HTTP e┼čde─čeri 401'dir ve hatal─▒ olarak RFC'de Yetkisiz olarak adland─▒r─▒l─▒r. B├Âl├╝m 10.4.2'de izinsiz 401 i├žin belirtildi─či gibi :

"─░stek, kullan─▒c─▒ kimlik do─črulamas─▒ gerektiriyor ."

Kimli─či do─črulanmam─▒┼čsan─▒z, do─čru yan─▒t 401'dir. Ancak yetkisizseniz, anlamsal olarak do─čru anlamda, 403 do─čru cevapt─▒r.


9







401 : Kim oldu─čunu bilmiyorum. Bu bir kimlik do─črulama hatas─▒. 403 : Kim oldu─čunu biliyorum. Ancak bu kayna─ča eri┼čim izniniz yok. Bu bir yetkilendirme hatas─▒d─▒r.


7







Bu kafamda buradaki herhangi bir yerden daha basittir.

401: Bunu g├Ârmek i├žin HTTP temel kimlik do─črulamas─▒ yapman─▒z gerekiyor.

403: Bunu g├Âremiyorsunuz ve HTTP temel auth yard─▒mc─▒ olmuyor.

Kullan─▒c─▒n─▒n sitenizin standart HTML giri┼č formunu kullanarak giri┼č yapmas─▒ gerekiyorsa, 401 uygun de─čildir ├ž├╝nk├╝ HTTP temel kimlik do─črulamas─▒na ├Âzg├╝d├╝r.

403 gibi ┼čeylere eri┼čimi reddetmek i├žin tavsiye etmiyorum /includes , ├ž├╝nk├╝ web s├Âz konusu oldu─čunda, bu kaynaklar hi├ž mevcut de─čil ve bu nedenle 404.

Bu, 403'├╝ "giri┼č yapm─▒┼č olman─▒z" olarak b─▒rak─▒r.

Ba┼čka bir deyi┼čle, 403 "bu kaynak, HTTP temel auth d─▒┼č─▒nda bir t├╝r kimlik do─črulamas─▒ gerektiriyor" anlam─▒na gelir.

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


3







Bir taray─▒c─▒ i├žin 401'in, kullan─▒c─▒n─▒n yeni kimlik bilgileri girmesi i├žin bir kimlik do─črulama ileti┼čim kutusu ba┼člatt─▒─č─▒n─▒ d├╝┼č├╝nmenin ├Ânemli oldu─čunu d├╝┼č├╝n├╝yorum, 403 ise bunu yapmaz. Taray─▒c─▒lar, e─čer bir 401 d├Ând├╝r├╝l├╝rse, kullan─▒c─▒n─▒n kimli─čini do─črulamas─▒ gerekti─čini d├╝┼č├╝n├╝r. Bu nedenle 401, ge├žersiz kimlik do─črulamas─▒, 403 ise izin eksikli─či anlam─▒na gelir.

─░┼čte bu mant─▒k alt─▒ndaki baz─▒ hatalar, ├Ânemli ifadeler kal─▒n yaz─▒lm─▒┼č, kimlik do─črulama veya yetkilendirmeden bir hatan─▒n al─▒naca─č─▒ durumlar.

  • Bir kaynak i├žin kimlik do─črulamas─▒ gerekiyor ama hi├žbir kimlik edildi belirtilen .

401 : M├╝┼čteri kimlik bilgilerini belirtmelidir.

  • Belirtilen kimlik bilgileri ge├žersiz bir bi├žimde .

400 : Bu ne 401 ne de 403't├╝r, ├ž├╝nk├╝ s├Âzdizimi hatalar─▒ daima 400'e d├Ânmelidir.

  • Belirtilen kimlik bilgileri , mevcut olmayan bir kullan─▒c─▒ya at─▒fta bulunur .

401 : ─░stemci ge├žerli kimlik bilgileri belirtmeli.

  • Belirtilen kimlik bilgileri olan ge├žersiz ancak ge├žerli bir kullan─▒c─▒ belirtmek (veya belirli bir kullan─▒c─▒ gerekli de─čilse bir kullan─▒c─▒ belirtmeyen).

401 : Yine, m├╝┼čteri ge├žerli kimlik bilgilerini belirtmelidir.

  • Belirtilen kimlik gelmi┼č dolmu┼č .

401 : Bu pratikte genel olarak ge├žersiz kimlik bilgilerine sahip olmas─▒yla ayn─▒, bu nedenle m├╝┼čteri ge├žerli kimlik bilgileri belirtmeli.

  • Belirtilen kimlik bilgileri tamamen ge├žerlidir , ancak daha fazla izin verilen kimlik bilgilerinin m├╝mk├╝n olmas─▒ m├╝mk├╝n olsa da, belirli bir kayna─č─▒ yeterli k─▒lmaz .

403 : Ge├žerli kimlik bilgilerinin belirlenmesi, mevcut kimlik bilgileri zaten ge├žerli oldu─čundan, ancak yaln─▒zca izninizin olmad─▒─č─▒ i├žin kayna─ča eri┼čim izni vermez.

  • Belirli bir kayna─ča , kimlik bilgilerine bak─▒lmaks─▒z─▒n eri┼čilemez .

403 : Bu, kimlik bilgilerinden ba─č─▒ms─▒zd─▒r, bu nedenle ge├žerli kimlik bilgilerinin belirtilmesi yard─▒mc─▒ olamaz.

  • Belirtilen kimlik bilgileri tamamen ge├žerlidir ancak belirli bir istemci olan bloke bunlar─▒ kullanmaktan.

403 : ─░stemci engellenirse, yeni kimlik bilgileri belirlemek hi├žbir ┼čey yapmaz.


3







Konuyla ilgili son RFC'ler g├Âz ├Ân├╝ne al─▒nd─▒─č─▒nda ( 7231 ve 7235 ) kullan─▒m durumu olduk├ža a├ž─▒k g├Âr├╝n├╝yor (italik eklendi):

  • 401 do─črulanmayan i├žindir ("ge├žerli kimlik do─črulamas─▒ndan yoksun"); yani 'Kim oldu─čunu bilmiyorum ya da s├Âyledi─čin ki┼či oldu─čuna g├╝venmiyorum.'

401 Yetkisiz

401 (Yetkisiz) durum kodu , hedef kaynak i├žin ge├žerli kimlik do─črulama bilgileri bulunmad─▒─č─▒ndan iste─čin uygulanmad─▒─č─▒n─▒ g├Âsterir . Bir 401 yan─▒t─▒ ├╝reten sunucu, hedef kayna─ča uygulanabilecek en az bir zorluk i├žeren bir WWW-Authenticate ba┼čl─▒k alan─▒ (B├Âl├╝m 4.1) g├Ândermelidir.

─░stek, kimlik do─črulama bilgilerini i├žeriyorsa, 401 yan─▒t─▒ bu kimlik bilgileri i├žin yetkilendirmenin reddedildi─čini g├Âsterir. Kullan─▒c─▒ arac─▒s─▒, iste─či yeni veya de─či┼čtirilmi┼č bir Yetkilendirme ba┼čl─▒k alan─▒yla tekrarlayabilir (B├Âl├╝m 4.2). 401 yan─▒t─▒ ├Ânceki yan─▒tla ayn─▒ zorlu─ču i├žeriyorsa ve kullan─▒c─▒ arac─▒s─▒ en az bir kez kimlik do─črulamas─▒ yapmay─▒ denemi┼čse, kullan─▒c─▒ arac─▒s─▒, genellikle ilgili te┼čhis bilgilerini i├žerdi─činden, kullan─▒c─▒ya ekteki temsili sunmak zorundad─▒r.

403 yasak

403 (Yasak) durum kodu, sunucunun iste─či anlad─▒─č─▒n─▒ ancak izin vermeyi reddetti─čini belirtir . ─░ste─čin neden yasakland─▒─č─▒n─▒ kamuoyuna a├ž─▒klamak isteyen bir sunucu yan─▒t y├╝k├╝nde (varsa) bu nedeni a├ž─▒klayabilir.

─░ste─če kimlik do─črulama bilgileri girildiyse, sunucu eri┼čim izni vermek i├žin yetersiz oldu─čunu d├╝┼č├╝n├╝r. M├╝┼čteri, iste─či ayn─▒ kimlik bilgileriyle otomatik olarak DE─×─░LMEMEL─░D─░R. M├╝┼čteri, iste─či yeni veya farkl─▒ kimlik bilgileriyle tekrarlayabilir. Ancak, kimlik bilgileriyle ilgisi olmayan nedenlerden dolay─▒ talepte bulunulmas─▒ yasaklanabilir.

Yasaklanm─▒┼č bir hedef kayna─č─▒n mevcut varl─▒─č─▒n─▒ "gizlemek" isteyen bir ba┼člang─▒├ž ÔÇőÔÇősunucusu, bunun yerine 404 durum koduyla (Bulunamad─▒) yan─▒t verebilir.


0







401 vs 403 durumunda, bu bir├žok kez yan─▒tland─▒. Bu asl─▒nda bir 'uygulama' tart─▒┼čmas─▒ de─čil, 'HTTP istek ortam─▒' tart─▒┼čmas─▒d─▒r.

Kendi giri┼č-giri┼č-d├Ân├╝┼č konunuzla (uygulama) ilgili bir soru var gibi g├Âr├╝n├╝yor.

Bu durumda, bir oturum a├žma sayfas─▒na g├Âre HTTP Auth kullanm─▒yorsan─▒z (HTTP Auth ayar─▒na ba─čl─▒ de─čildir) 401 veya 403 g├Ândermek yeterli de─čildir. Bir dosyaya uygulama d├╝zeyinde eri┼čim i├žin kendi giri┼č ekran─▒n─▒z─▒ (talep edilen kaynak yerine) g├Âsteren bir ÔÇť201 Olu┼čturulduÔÇŁ ar─▒yor olabilirsiniz. Bu diyor ki:

ÔÇťSeni duydum, burada, ama bunun yerine bunu dene (g├Ârmene izin yok)ÔÇŁ


-4