HTTP 403は、要求されたリソースへのアクセスが禁止されていることを意味する HTTP ステータス コードです。サーバーは要求を理解しましたが、正しい場合は要求を実行しません。
仕様
HTTP 403 は、HTTP 401 とは異なるエラーケースを提供します。HTTP 401 はクライアントが認証されていない場合に返され、有効な認証の後に成功した応答が返される可能性があることを意味しますが、HTTP 403 は、認証されたアカウントの権限が不十分であるなど、認証を提供しているにもかかわらずクライアントがリソースへのアクセスを許可されていない場合に返されます。[a]
エラー403:「サーバーはリクエストを理解しましたが、承認を拒否しています。」(RFC 7231) [1]
エラー 401: 「リクエストにはユーザー認証が必要です。レスポンスには、リクエストされたリソースに適用可能なチャレンジを含む WWW-Authenticate ヘッダー フィールド (セクション 14.47) が含まれている必要があります。クライアントは、適切な Authorization ヘッダー フィールド (セクション 14.8) を使用してリクエストを繰り返すことができます。リクエストにすでに Authorization 資格情報が含まれている場合、401 レスポンスは、それらの資格情報に対する認証が拒否されたことを示します。」(RFC 2616) [2]
Apache Web サーバーは、サーバーでディレクトリ一覧が無効になっており、ブラウザーに返す既存のファイルを指定するための Directory Index ディレクティブがない場合、ファイル システム ディレクトリに対応する URL [3] パスの要求に対して 403 Forbidden を返します。管理者の中には、Apache の Mod プロキシ拡張機能を設定してこのような要求をブロックする人もいますが、この場合も 403 Forbidden が返されます。Microsoft IIS は、そのサーバーでディレクトリ一覧が拒否された場合に同じように応答します。WebDAV では、クライアントが PROPFIND 要求を発行したが、必要な Depth ヘッダーを発行しなかったか、Depth ヘッダーが無限大の場合、サーバーから 403 Forbidden 応答が返されます。[3]
原因
403ステータスコードは、以下の理由で発生する可能性があります。[4]
- 権限が不十分: 403 ステータス コードの最も一般的な理由は、ユーザーが要求されたリソースにアクセスするために必要な権限を持っていないことです。これは、ユーザーがログインしていない、有効な資格情報を提供していない、またはリソースにアクセスするための適切なユーザー グループに属していないことを意味します。
- 認証が必要: 場合によっては、サーバーは特定のリソースにアクセスするために認証を要求します。ユーザーが有効な資格情報を提供しない場合、または認証に失敗した場合は、403 ステータス コードが返されます。
- IP 制限: サーバーは、特定の IP アドレスまたは IP 範囲へのアクセスを制限する場合もあります。ユーザーの IP アドレスが許可されたアドレスのリストに含まれていない場合は、403 ステータス コードが返されます。
- サーバー構成: サーバーの構成により、Web サイトの特定のファイル、ディレクトリ、または領域へのアクセスが禁止される場合があります。これは、誤った構成や、サーバー管理者によって意図的に課された制限が原因である可能性があります。
- ファイアウォールまたはセキュリティ ソフトウェアによってブロックされています: ファイアウォールまたはセキュリティ ソフトウェアによってリソースへのアクセスがブロックされている場合、403 ステータス コードが発生する可能性があります。これは、セキュリティ ポリシー、マルウェア検出、またはその他のセキュリティ対策によって発生する可能性があります。
例
クライアントのリクエスト: [5]
GET /securedpage.php HTTP / 1.1
ホスト: www.example.org
サーバー応答: [5]
HTTP / 1.1 403 禁止
コンテンツタイプ: text/html
< html >
< head >< title > 403 禁止</ title ></ head >
< body >
< h1 >禁止</ h1 >
< p >このサーバーの /securedpage.php にアクセスする権限がありません。</ p >
</ body >
</ html >
IIS のサブステータス エラー コード

以下の非標準コードはマイクロソフトのインターネットインフォメーションサービスによって返され、IANAでは正式には認識されていません。[6]
- 1 – 実行アクセス禁止
- 403.2 – 読み取りアクセスが禁止されています
- 403.3 – 書き込みアクセスが禁止されています
- 403.4 – SSL が必要です
- 403.5 – SSL 128 が必要
- 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.50 – IP アドレス制限により拒否されました
参照
注記
- ^ Web サーバーが要求の実行を拒否する可能性のある理由については、IIS の #Substatus エラー コードを参照してください。
参考文献
- ^ハイパーテキスト 転送プロトコル (HTTP/1.1): セマンティクスとコンテンツ。IETF。sec . 6.5.3。doi : 10.17487/ RFC7231。RFC 7231 。
- ^ Nielsen, Henrik; Mogul, Jeffrey; Masinter, Larry M.; Fielding, Roy T.; Gettys, Jim; Leach, Paul J.; Berners-Lee, Tim (1999 年 6 月). 「RFC 2616 - Hypertext Transfer Protocol - HTTP/1.1」. Tools.ietf.org. doi :10.17487/RFC2616 . 2018 年 4 月 9 日閲覧。
- ^ ab 「Web分散オーサリングおよびバージョン管理(WebDAV)のHTTP拡張機能」。IETF。2007年6月。2016年3月3日時点のオリジナルよりアーカイブ。2016年1月12日閲覧。
- ^ HTTP ステータス コード 403 403 ステータス コードの問題を解決するにはどうすればよいですか?
- ^ ab HTTP ステータス コード 403 の「クライアント要求」と「サーバー応答」の例
- ^ HaiyingYu (2023-02-23). 「HTTP ステータス コードの概要 - インターネット インフォメーション サービス」. learn.microsoft.com . 2024-05-19に閲覧。
外部リンク
- Apache モジュール mod_proxy – 転送
- SELinuxコンテキストの操作 ファイルのラベル付け
- ハイパーテキスト転送プロトコル (HTTP/1.1): セマンティクスとコンテンツ
