403 Forbidden

網站為什麼會出現403 Forbidden?如何解決?|天矽科技網頁設計

網站為什麼會出現403 Forbidden?如何解決?|天矽科技網頁設計

 

網站出現403 Forbidden的原因,是因為客戶端沒有存取與訪問資源的權限,但伺服器是可以正常解析與請求的,可能是因為IP被阻擋,或是被防火牆認定為不安全所以才會回傳403 Forbidden。

403錯誤原因


 什麼是403?為什麼網站會發生403錯誤?

 403 Forbidden 是HTTP協定中的一個狀態碼,表示伺服器雖然有成功解析請求,但是客戶端沒有存取資源的權限,簡單來說就是不允許我們去訪問資源的意思。

403錯誤流程

根據曾經的案例(網站有第三方登入功能)與宏遠電訊的回覆說明:

Q:

  • Google回傳的網址,被主機的防火牆判定為不安全 403(拒絕存取/禁止存取)。
  • Google回傳網址:
    403錯誤

A:

  • 查詢為ModSecurity阻擋了Google OAuth驗證,在規則 id 「210580」中阻擋了「.profile」字串,目前已先將此規則bypass,測試使用google登入正常。
  • 查到原因為主機更新,Google回傳的網址,被主機的防火牆判定為不安全,所以403(拒絕存取/禁止存取)。※主機已針對此特殊規格, 做安全性調整。

 

 另外,IIS(Internet Information Server)提供了 IP限制的機制,我們可以限制某些IP不能訪問站點,或限制只有某些IP可以訪問,若該IP被阻止或不再允許範圍,則會出現403錯誤。

※ IIS(Internet Information Server)是微軟伺服器Windows Server上,管理各種電腦網路服務的整合介面,如Web(網站/網頁)、FTP(檔案傳輸)、SMTP(電子郵件)…等,皆由IIS部屬管理。

 

 當然,重新整理F5是一個不錯的選擇,若仍然無法進入網站,則建議聯絡網站的主機商,另外在IIS上,403還有其子錯誤代碼。

 

403子錯誤代碼

 在IIS上,403有其他的子錯誤代碼,以下為微軟的網際網路資訊服務所反饋,雖然這些代碼不被 IANA(Internet Assigned Numbers Authority)網際網路號碼分配局所認可,但仍可參考。

  • 403.1:禁止執行存取。
  • 403.2:禁止讀取存取。
  • 403.3:禁止寫入存取。
  • 403.4:需要SSR。
  • 403.5:需要128位元SSL。
  • 403.6:IP位址被拒絕。
  • 403.7:需要客戶端憑證。
  • 403.8:拒絕站點存取。
  • 403.9:使用者數過多。
  • 403.10:無效組態。
  • 403.11:密碼更改。
  • 403.12:對應器拒絕存取。
  • 403.13:客戶端憑證被復原。
  • 403.14:拒絕列出目錄。
  • 403.15:客戶端存取授權過多。
  • 403.16:客戶端憑證不被信任或無效。
  • 403.17:客戶端憑證已過期或尚未有效。
  • 403.18:無法執行來自此應用程式池的請求。
  • 403.19:無法為客戶端執行此應用程式池中的CGI。
  • 403.20:認證登入失敗。
  • 403.21:拒絕源存取。
  • 403.22:無限深度被拒絕。
  • 403.502:來自客戶端IP的請求過多;已達到動態IP限制。

 

403錯誤解決辦法

 

  • 重新整理
    跟我們前面提到的一樣,點選F5重新整理、刷新頁面是一個不錯的辦法,可以姑且一試,因為有時候403錯誤只是短暫的,刷新頁面或許能解決問題。

  • 清除瀏覽器Cookie和緩存
    具有錯誤的頁面可能已經儲存在我們瀏覽器的緩存中,但實際的網站連結可能已經被更改,所以可以透過「清除瀏覽器Cookie和緩存」來嘗試解決403錯誤。

  • 稍後再試
    如果我們已經嘗試處理,但仍無法獲得解決時,我們可以稍等一段時間再回來,也許在我們嘗試的期間,已經有人正在積極處理這個網站的問題。

  • 聯繫主機或網際網路服務商(ISP)
    如果你是網站擁有者,建議直接與主機或ISP服務商聯繫,讓他們知道目前所碰到的問題,並協助處理;如果你不是網站的擁有者,那麼網站可能不適合你的IP或權限,也許可以聯絡ISP服務商,因為某些公共IP可能會因為某些原因而被阻止。

 

HTTP 4XX 客戶端錯誤


 當網站出現4XX錯誤時,表示客戶端可能發生了錯誤,妨礙了伺服器的處理,這些4系列的狀態碼包含以下。
 

  • 400 Bad Request
    明顯的客戶端錯誤,如格式錯誤的請求與法、太大的檔案大小、無效的請求或欺騙性請求,伺服器則不能或不會處理。

  • 401 Unauthorized
    與403類似,401表示未認證,也就是用戶「沒有必要的憑據」,當網站、網域禁止IP地址時,代碼會顯示401吉表示該特定地址被拒絕訪問網站。

  • 402 Payment Required
    這個狀態碼通常不被使用,是為了將來可能的需求而預留的。Google Developers API會使用此狀態碼,在特定開發人員已超過請求的每日限制時。

  • 403 Forbidden
    服務器已經理解請求,但是拒絕執行它。

  • 404 Not Found
    請求失敗,請求的資源沒有在伺服器上,但允許用戶的後續請求。

  • 405 Method Not Allowed
    請求方式不被允許,可能會因為網站伺服器沒有被設定為「從客戶端接受輸入資料」而出現。

  • 406 Not Acceptable
    請求的資源內容特性無法滿足請求中的條件,因而無法生成響應實體,不接受改請求。

  • 407 Proxy Authentication Required
    與401類似,不過客戶端必須在伺服器上進行身分驗證。

  • 408 Request Timeout
    請求超時。

  • 409 Conflict
    請求存在衝突,無法處理該請求,如多個同步更新之間的編輯衝突。

  • 410 Gone
    表示所請求的資源不再可用,多數伺服器端不會使用此狀態碼,而是直接使用404狀態碼。

  • 411 Length Required
    伺服器拒絕在沒有定義Content-Length頭的情況下接受請請求。

  • 412 Precondition Failed
    伺服器在驗證Request header字段中給出先決定件時,沒能滿足其中一個或多個。

  • 413 Request Entity Too Large
    伺服器拒絕處理當前請求,因請求提交的實體數據大小,超過伺服器願意或能處理的範圍。

  • 414 Request-URI Too Long
    表示請求的URL長度超過了伺服器能解釋的長度。

  • 415 Unsupported Media Type
    對於當前請求的方法和資源,並非伺服器中可支援的格式,因此請求拒絕。

  • 416 Requested Range Not Satisfiable
    客戶端已要求文件的一部份(Byte serving),但伺服器無法提供該部分。

  • 417 Expectation Failed
    在Request header的Expect中,指定的預期內容無法被伺服器滿足,或是此伺服器Expect的內容無法被滿足。

  • 421 Misdirected Request
    無法產生響應的伺服器。

  • 422 Unprocessable Entity
    請求格式正確,但語意錯誤而無法響應。

  • 423 Locked
    當前資源被鎖定。

  • 424 Failed Dependency
    之前的某個請求發生錯誤,導致當前請求失敗。

  • 425 Too Early
    伺服器拒絕處理在Early Data中的請求,規避可能的replay attack網路攻擊。

  • 426 Upgrade Required
    客戶端應切換到Upgrade 的Request Header Fields中,給出的不同協定。

  • 428 Precondition Required
    原伺服器要求該請求須滿足一定條件。

  • 429 Too Many Requests
    使用者在給定的時間內,傳送了太多次的請求。

  • 431 Request Header Fields Too Large
    伺服器不願意處理請求,因為一個或多個Request Header Fields過大。

  • 440 Login Time-out
    客戶端session逾時失效,需要重新登入。

  • 451 Unavailable For Legal Reasons
    因法律原因不可用。當使用者請求某個經政府審核,查詢後方法後認定不合法的來源時,就會顯示451。

 

資料參考
維基百科|HTTP 403
維基百科|HTTP狀態碼
iT邦幫忙|伺服器架站無法訪問的解決方案
Begin-it|什麼是403禁止錯誤(以及如何修復它)?

 

延伸閱讀
網站為什麼會出現502 Bad Gateway?如何解決?

share FB LINE
看天矽作品集 回上一頁
ID:@323foylw