【譯】HTTP錯誤碼403禁止:意味著什麼,怎麼修復它

在上網的時候,收到任何的錯誤碼都是讓人沮喪的體驗。儘管我們已經習慣於404頁面找不到,我們在頁面迷失的時候,看到可愛的佔位符來娛樂我們是很常見的事情了。但是有種更令人困惑的403錯誤:禁止響應。

403意味著什麼?

簡單來說:當你發起請求的時候,服務端決定了你沒有許可權訪問。

根據RFC 7231

403(禁止)狀態碼錶明服務端已經明白請求,但是拒絕授權…如果請求中提供了授權的身份認證,服務端認為它們不足以授予訪問許可權。

403響應是屬於客戶端錯誤4xx範圍的HTTP響應。這意味著你或者你的瀏覽器做錯了什麼。

如果你遇到這個,這通常意味著你已經通過伺服器進行了身份驗證,比如你已經登陸,但是你請求的資源希望某人具有更高的特權。

最常見的,你作為一個普通用戶登陸系統,但是你嘗試去獲取管理員(許可權的)頁面。

你怎麼去解決它

作為一個沒有訪問伺服器許可權的用戶,你實際上只有幾種選擇:

使用更適合的帳號進行身份驗證

再者,根據RFC 7231

如果請求中提供了身份驗證憑據,則伺服器認為它們不足以授予訪問許可權。客戶端不應該使用相同的憑證重複請求。客戶端可以用新的或不同證書重複請求。

這是唯一使你立刻擁有解決此問題能力的解決方案。

如果你在一個站點上擁有多個帳號,並且嘗試執行通常可以訪問的操作,但是這次被禁止這樣做了,那麼你應該嘗試此方法:使用你的其他帳號登陸

你可能會發現,此選項還需要清除快取或Cookies,以防萬一其他用戶登陸而導致刷新身份驗證令牌失效。但是通常是不需要的操作。

作為一個令人絕望的舉動,你還可以嘗試禁止可能會干擾你使用網站的瀏覽器擴展插件。但是,這不太可能,因為403表明你已經通過身份驗證,但是未獲得授權。

譯者加:無法訪問站點,翻牆軟體也可能導致,請檢查是否關閉了代理軟體

通知網站所有者:當你想訪問內容時候返回了403

如果你希望完全可以訪問有問題的資源,但是仍然看到此錯誤,那麼明智的做法就是讓網站背後的團隊知道 – 這可能是他們的錯誤

再次引用RFC 7231:

然而,可能由於與憑證無關的原因而禁止請求。

造成這種情況意外發生的常見原因可能是伺服器使用特定IP地址或地理區域允許列表或拒絕列表(名單)。

他們可能有充分的理由在嚴格定義的參數之外阻止你的訪問,但是也可能是一個疏忽。

放棄

也許你不應該能夠訪問該資源。這種情況是會有的。這是一個龐大的互聯網,可以合理地預期某些區域對你本人是無法進入的。

你可以通過http.cat站點來反省一下,為什麼你的原始請求會被禁止

後話