意味
サーバーはリクエストを理解しましたが、許可を拒否しています。権限が変わらない限り、ログインし直しても解決しません。
よくある原因
- ユーザーに必要なロールやスコープがない
- IP ブロック、WAF、ボット対策
- Web サーバーのファイル権限やインデックスファイルの欠如
対処法
クライアント・閲覧者の場合
アカウントやトークンに正しい権限やスコープがあるか確認します。Web サイトでは VPN、ブロックされた IP、ボットチャレンジが原因のこともあります。
サイトや API の運営者の場合
ファイルの所有者と権限、ディレクトリインデックスの設定、WAF ルールを確認します。リソースの存在を明かしたくないなら 404 を返します。
レスポンス例
HTTP/1.1
HTTP/1.1 403 Forbidden
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "You do not have permission to delete this project."
} 仕様
よくある質問
› nginx が 403 Forbidden を返すのはなぜ?
よくある原因は、ワーカーがファイルを読めない、インデックスファイルがなく autoindex が無効、deny ルールに一致した、のいずれかです。
› 非公開リソースには 403 と 404 のどちら?
404 はリソースの存在を隠し、403 はより正直です。例えば GitHub は非公開リポジトリに 404 を返します。