「403 Forbidden」とは?エラーの原因や解決方法を解説
サイト閲覧時、403 Forbiddenのエラーが出て閲覧できない、ということがあります。403 Forbiddenのエラーの意味や原因が分からない人、意味は分かるけれど対処法が分からない人それぞれいると思いますので、原因・解決方法含め解説していきます。
「403 Forbidden」エラーの原因や解決方法
Webサイトを閲覧している場合に何らかのエラーが出て、そのサイトを閲覧できない場合があります。その原因が分かるものもあれば、原因がわからないもの、意味が分かるもの・意味が分からないものは人それぞれ異なるでしょう。
「403 Forbidden」エラーとは?
そんなWebサイト閲覧時に表示される、人によっては意味や原因が分かりづらいエラーに「403 Forbidden」というものがあります。この「403 Forbidden」とはどういった意味を持つエラーなのでしょうか。
ウェブサイトが閲覧禁止になっている状態
この403 Forbiddenとは、Webサイトが閲覧禁止になっていることを意味するエラーです。閲覧禁止を意味するとは言っても、なにかそのWebサイトに閲覧者側がしてしまった、ということばかりではありません。そちらについては後述します。
403はHTTPステータスコード
403 ForbiddenというのはHTTPステータスコードと呼ばれるものの1つです。HTTPステータスコードとは、Webサイトの状態を示すサーバーからのレスポンスを意味するコードで大きく分けて5つに分かれています。
HTTPステータスコードのうち、100番台は情報、200番台は成功、300番台はリダイレクション、400番台はクライアントエラー、500番台はサーバーエラーを示しています。
403 Forbiddenとは400番台のエラーコード、つまりクライアントエラーを示しているHTTPステータスコードです。
そのHTTPステータスコードの「403 Forbidden」の「Forbidden」とは「禁止する」を意味する単語で、前述したとおり「閲覧を禁止」しているものです。
サーバー側がリクエストを受け取り理解はしても、認証を拒否した場合に、このHTTPステータスコードによるエラーが表示されます。
「403 Forbidden」エラーの原因
さて、そんな「403 Forbidden」のエラーの意味が分かっても、どうしてそのエラーが出るのか、原因とはなにか、気になっているという人も少なくないでしょう。
エラーの意味が「閲覧禁止」になっているわけですから、403 Forbiddenが表示されたサイトで閲覧禁止になるような何かをしたのか心配になっている人もいるかと思います。
実際、その意味の通りアクセスを拒否するようになっている状態ということもありますが、意図せず「403 Forbidden」となっていることも少なくありません。その場合の原因について確認していきましょう。
ちなみに、閲覧者側で原因として考えられることは、エラーの意味の通り閲覧拒否されるような何かしらの悪質な行為をしたということが記憶になければ、基本的にサイト側の何らかの設定関係のエラーが考えられます。
アクセス権限/所有権に問題や制限がかかっている
さて、サイト管理者側が原因として考えられるものとして、403 Forbiddenの内容であるアクセス制限の原因がアクセス権限/所有権に問題が生じていたり、制限がかかっている場合があることが考えられます。
悪質なユーザーがアクセスできないように制限する、文字通りのアクセス制限がかかっていることが原因という場合もありますがこちらは意図的にしているものですね。
意図せず403 Forbiddenのエラーが出る場合は、「.htaccess」の記述が間違っている管理者側のミスが原因ということが多いです。
なお、過度なアクセス集中によりサーバーに負荷がかかった場合にも403 Forbiddenが発生することもあるため、そちらが原因かどうかということも確認しておくと良いでしょう。
ウェブサーバーの構成が誤っている
Webサーバーの構成が間違っているということも原因として考えられます。ディレクトリ(例えば『samplesite.com/page1/』のようなページ)へ直接アクセスする場合、index.htmlやindex.phpなどのインデックスファイルが存在している必要があります。
このインデックスファイルが存在していない場合、403 Forbidden(場合によっては404エラーのこともあり)が表示されることがあるため、そちらについても確認してください。
また、サイトのドメイン設定に問題がある場合、DNS設定に何らかの問題が生じていることが原因ということもあります。
また、レンタルサーバーを利用している場合、従来のファイアウォールやIDS、IPSでは防御できない攻撃を検知してブロックしてくれるWAF設定の誤作動も考えられます。
エラーの解決方法
さて「403 Forbidden」のエラーが表示された場合、どのような解決方法を取るのかの説明に移ります。
アクセスした側
基本的に、Webサイトにアクセスした側で403 Forbiddenのエラーが表示された場合、解決する方法は回復を待ったり、ページの更新(リロード)をおこなうなどしてみてください。
403 Forbiddenのエラーの意味の通り閲覧拒否されているという悪質なことをした記憶があるような場合は意図的に拒否されている状態なのでどうしようもありません。
なお、悪質なことをした記憶がないような明らかに閲覧できる環境下にある場合や、長時間待っても改善しない場合は、可能であればサイト管理者へ問い合わせてみてください。
サイトの管理者側
基本的に、403 Forbiddenのエラーはサイト管理者側が解決する方法しかありません。原因ごとに解決方法も異なるため、それぞれ確認してみてください。
アクセス権限/所有権に問題や制限がかかっている場合、「.htaccess」の記述ミスなどが原因となっている可能性があるため、そういった中にミスがないか確認してみましょう。案外単純なミスで403 Forbiddenのエラーが発生していることが多いです。
プログラムファイルなどの重要ファイルにアクセス権(パーミッション)を設定する場合、適宜3桁の数字を掛け合わせて所有者・所有グループ・その他のユーザーに対する権限を設定します。
ファイルの読み込みを「4」、ファイルの変更を「2」、ファイルの実行を「1」として、それぞれの数字を足したもので表現をおこなうのです。
それぞれ利用する数字は次のようになります。
- 7→4と2と1を許可する(読み込み、変更、実行すべて許可)
- 6→4と2を許可(ファイルの読み込みと変更を許可)
- 5→4と1を許可(ファイルの読み込みと実行を許可)
- 4→4のみを許可(ファイルの読み込みのみを許可)
- 0→すべて許可しない
「754」の数字で設定した場合、所有者はすべて許可、所有グループは読み込みと変更を許可、その他のユーザーには読み込みのみ許可という形です。
閲覧ユーザーを「0」にしてしまった場合、ファイルの読み込みも許可されない状態となりますので、403 Forbiddenエラーが生じます。
インデックスファイルがないことが403 Forbiddenの原因となっているのであれば、インデックスファイルの作成をおこなってください。
基本的に、各ディレクトリにインデックスファイルがないと403 Forbiddenのエラーが生じやすいです。各階層のディレクトリを読み込む際はインデックスファイルが優先して読み込まれることになるためです。
特に理由がなければルートディレクトリを含めた各ディレクトリにインデックスファイルを置き、「index」以外の名前で各カテゴリとしてページを作成してください。
もともと閲覧権限のないディレクトリへのアクセスを直接URL入力したことやリンクミスなどの可能性もあるため、アクセスしやすい動線配置でのサイト作成を意識すると良いでしょう。
DNS設定についてはドメイン設定の確認を、WAF機能の誤作動などはサーバー管理画面で設定を確認してみましょう。
キャッシュによって誤作動かどうかの確認がうまく行かない可能性もあるため、重要なファイルの更新の場合はサーバーのキャッシュなどを削除してからおこなってください。
最後に
403 Forbiddenのエラーは、閲覧制限を受けている際に表示されるHTTPステータスコードです。
意図的な場合を除き、基本的に管理者側で対処して改善することになるエラーですので、もし403 Forbiddenのエラーが表示された場合は原因を特定して解決するよう設定し直すなどしてみてください。