未分類

403エラー;forbiddenはアクセス権が原因!解消法を解説

2022年8月3日

Webサイトなどの403エラー(forbidden)はアクセス権限が無いのにアクセスしようとしたこと示すエラーコードです。原因はサーバー側に問題があり、ユーザー側(クライアント)は解決できないものです。本記事を参考に対応することで迅速に解消しましょう。

403エラー(forbidden)とはサイトへのアクセス権限が無い状態

Webサイトを閲覧しているときやWebアプリを使っているときに、突然、403エラー(forbidden)のエラーウィンドウが表示されて、それ以降の操作がうまくできなくなってしまうことがあります。

この403エラー(forbidden)とは、Webサイトの閲覧やWebアプリの実行に必要なファイルにアクセスしようとして、アクセスを拒否された場合に戻ってくるエラーコードなのです。forbiddenは禁止という意味で、当初は読み書きなどのアクセスが許可されていないのにアクセスしたというエラーでした。

WebサイトやWebアプリでは、正常にファイルにアクセスできなかったというエラーを示すコードとなっています。

403エラー(forbidden)の原因

ここでは、403エラー(forbidden)が発生する原因を説明します。先ほど、ファイルはあるのに、そのファイルの読み書きができないと説明しましたが、読み書きができない原因はさまざまなのです。

存在しないインデックスページ

インデックスページは、WebサイトやWebアプリの入り口となるもので、必ず、1つ存在しなければならないHTMLファイルです。index.htmlやindex.phpというファイル名で使われます。

WebサイトやWebアプリにアクセスする場合、必ず、このファイルがあるものとしてWEBサーバーなどにこのファイルを読みに行きます。ところが、ファイル名を間違ったり、ファイルの格納場所が不適切な場合は、アクセスできないため403エラーが返されるのです。

適切なディレクトリにアップロードされていないサイト

WebサイトやWebアプリは、HTMLファイルやプログラムファイル、各種の出たファイルなどを多数のファイルから構成されています。これらのファイルはWebサーバーに、メンテナンス性を考慮して、階層的なディレクトリ構成で格納されています。

WebサイトやWebアプリにアクセスしている際には、Webサーバの指定されたディレクトリから必要なファイルをクライアント側にダウンロードしています。したがって、ファイルが正しいディレクトリに格納されていないとファイルにアクセスできず、403エラーが戻ってくるのです。

具体的な例として、HTMLファイルに記述されている場所にファイルが格納されていない場合などが該当します。

アクセス権限もしくは所有権

WebサイトやWebアプリは、Webサーバーにプログラムやデータを格納しており、インターネットを通じて世界中からアクセスできてしまいます。したがって、需要なファイルやセキュリティの観点からWebサーバー内のファイルには利用者区分などによってアクセス制限がかけられています。

アクセス制限は、各ファイルのアクセス権限と所有権という属性でコントロールされます。したがって、このアクセス権限や所有権の設定にミスがあると、ファイルに正しくアクセスできず、403エラーが返されてしまいます。

アクセスの過負荷

WebサイトやWebアプリのアクセスが集中して、Webサーバが過負荷の状態になってしまうと、所定の時間内に各クライアントが必要なファイルなどをダウンロードできなくなってしまいます。あまりに時間がかかりすぎるとアクセスエラーの扱いになり403エラーが返されるのです。

DNSの問題

Webサイトにアクセスするには、Webサイトが格納されているWebサーバーのアドレスを知ることが必要になり、サイト名とアドレスを結びつけるDNSサーバが利用されます。

サーバの登録情報が間違っていると、Webサーバにアクセスできず、403エラーが返されるのです。

WAF機能の誤作動

Webサイトをレンタルサーバを利用して運用している場合は、WAF機能が正しく動作していないことが原因で403エラーが返されることがあります。WFA機能とは、SQLインジェクションやクロスサイトスクリプティングなどのWebアプリを標的とする不正アクセスを防御する機能です。

WFA機能の設定ミスなどで、WebサイトやWebアプリにアクセスできない場合、403エラーが返されることがあります。

数時間待てば自然に解決する場合も

403エラーの原因として、WebサイトやWebアプリへのアクセス集中によるWebサーバの過負荷というものがありました。インターネットではこうしたアクセス集中は避けられないものであり、WebサイトやWebアプリの運営側でもコントロールできないこともあります。その場合は、アクセスの集中が収まるまで待てば解決してしまうこともあります。

なお、アクセス集中によりWebサーバやシステムに不具合が発生した場合は、アクセス集中が収まっても不具合を解決しなければ回復しないので、不具合の発生有無のチェックが必須です。

ユーザー側(クライアント)は解決できない403エラー

403エラーは原因で説明したように、主に、Webサーバー側に原因があり、ユーザー側で対処できるものではありません。WEbサーバーの管理側で対処が完了するまで待つしかありません。

403エラー(forbidden)の種類

403エラーはHTTPステータスコードとしては、「403 Forbidden」です。

メッセージは使用しているwebサーバーなどによって異なります。

Apacheの例:403 forbidden
You don't have Permission to access /index.html on this server

Windowsの例:エラー 403: Access Denied/Forbidden

また、サーバやシステムによっては、以下のようなメッセージが表示される場合もあります。

HTTP Error 403 – Forbidden – You do not have permission to access the document or program you requested
403.That’s an error.Your client does not have permission to get URL / from this server
You are not authorized to view this page
It appears you don’t have permission to access this page.

403エラーの解決方法

ここでは、403エラーは発生時の対処法を原因別に説明します。

パーミッション(ファイルアクセス権)の確認

403エラーとなったファイルのパーミッションをチェックしてみましょう。パーミッションとは、アクセス権のことです。

Linuxであれば、lsコマンドで確認できます。Windowsなら、ファイルのプロパティのセキュリティタブから確認できます。Macなら、ファイル→情報を見る→共有とアクセス権で確認します。

インデックスファイルがディレクトリに存在するか

WebサイトやWebアプリのトップレベルはindex.htmlなどのインデックスファイルであり、このファイルはWebサイトのトップディレクトリに配置しておく必要があります。配置が適切か確認しましょう。

アクセス過多によるサーバー過負荷への対応

Webサーバなどのサーバーの能力がアクセスに追い付いていないことが原因ですので、基本的にはサーバーを増強することは必要です。Webサイトの管理側は、アクセス解析などによりアクセス数をチェックして急増が想定される場合はサーバー増強などの対応が必要です。

DNS設定の修正

DNSに問題があって403エラーが発生している場合は、DNSのミスを迅速に修正することが必要です。ドメイン設定などをチェックしてみましょう。

WAF機能設定の修正

レンタルサーバのWAF機能などの設定ミスで403エラーが発生している場合は、WAFの設定の見直しが必要です。WAFの設定はレンタルサーバごとに異なるので、各サーバに運用に従って修正しましょう。

WordPressサイトで403エラーの場合の解決方法

WordPressで構築したサイトで403エラーが発生した場合の解決方法を以下に説明します。

.htaccessファイル

WordPressで構築したサイトでWebサーバーとしてApacheなどを使用している場合、.htaccessファイルを制御に使用することができます。例えば、サイトを移転した場合に新しいサイトへ誘導したり、サイトにアクセスするユーザーをID/パスワードやIPアドレスで制限したりできます。

しかし、.htaccessファイルの記述に誤りがあると、403エラーを誘発する原因となります。

.htaccessファイルの記述に誤りがある場合は、誤りを簡単に発見して修正できれば良いのですが、そうでない場合は、バックアップを取得したうえで旧ファイルを削除し、WordPressにクリーンな新ファイルを生成してもらう方が安全です。

プラグイン関連事項

WordPressには便利なプラグインが多数公開されており、それらを活用している場合も多いでしょう。しかし、プラグインのバグや相性問題で403エラーを誘発する可能性があります。

プラグインのバグなどがSNSなどで入手出来ている場合は、該当のプラグインのアップデートで対応可能ですが、不具合の原因を調べるには、いったんすべてのプラグインを無効にして、一つずつ有効にしながらチェックするのが確実です。

 

ホットリンク保護

他人のサイトの画像などを勝手にimgタグなどで無断利用することを防ぐためにホットリンクを有効にするという方法があります。しかし、ホットリンクの設定を誤っていると、正常にアクセスしているユーザーに対して誤って403エラーを返すことになります。

この場合は、ホットリンクの設定を見直して、誤りを修正してもらいましょう。

CDN異常

画像の効率的な配信などのためにCDNを使用している場合、CDNの不具合などにより403エラーが発生してしまうことがあります。この場合は、CDN機能を無効にしてサイト自体の正常性をまず、確認しましょう。正常であれば、CDNの異常が原因の可能性が高いので、CDNの復旧を待って有効に戻します。

まとめ

WebサイトやWebアプリでは、潜在的な不具合が露見して障害を発生させることがあります。この場合は、HTTPステータスコードが原因切り分けに役に立ちます。403エラーはアクセス権違反を表すエラーコードです。

本記事を参考に、403エラー発生の原因を突き止め、迅速に対応しましょう。