WordPressの「403 Forbidden」はサイト改ざんを疑え!
あなたのWordPressで発生した「403 Forbidden」、原因がわからず困っていませんか?
いくら調べてもわからないなら、ちょっとした設定ミスではなく、サイトの改ざんが原因かもしれませんよ。
でも、なぜサイトが改ざんされて「403 Forbidden」になるのか。
よくわからなければ、この記事を読んでみてください!
「403 Forbidden」とは
「403 Forbidden」はアクセス制限がかけられているページを閲覧しようとした場合などに表示されるエラーメッセージで、早く言えば「このページにはアクセスできません」という意味です。
「Forbidden」には「禁じられた」「禁止の」などの意味があり、ここでは「閲覧が禁止されているページ」という意味で使われます。
その状態を示すエラーコードが403なので「403 Forbidden」ということです。
管理者が第三者のアクセスを拒否するために設定するのが一般的ですが、管理者自身がアクセスできなくなるケースもあります。
たとえば、レンタルサーバーの契約期間が終了したり、料金を支払っていない場合にも「403 Forbidden」が発生する場合があります。レンタルサーバー側がサイトにアクセス制限をかけて、料金が支払われるまで一時的にサイトを使用不可にするためです。
WordPressで発生する「403 Forbidden」
さまざまな理由で発生する「403 Forbidden」ですが、最近WordPress個別サポートに相談が多いのがサイトの改ざんによるものです。
サイトの改ざんとは、サイト内のページを勝手に書き換える行為で、ページと無関係な文章が埋め込まれたり、無関係なサイトが表示されるなどの被害が発生します。
WordPressユーザーにも改ざん被害が発生していますが最近流行しているのが.htaccessの改ざんです。
.htaccessはサイト内でアクセス制限を設定するファイルでWordPressにとっても重要なファイルですが、「403 Forbidden」が発生した場合、そのサイトの.htaccessに次のようなコードが埋め込まれていないか確認してください。
<FilesMatch ".(py|exe|php)$"> Order allow,deny Deny from all </FilesMatch>
数行の簡単なコードですがPHPファイルへのアクセスが拒否(Deny from all)され、これだけでWordPressに「403 Forbidden」が発生してサイトが表示できなくなります。
勝手に.htaccessが書き換えられた理由はさまざまですが、「FTPパスワードが漏洩した」や「WordPressやプラグインのバージョンが古すぎた」などが考えられます。
サイト復旧後に見直してみてください。
WordPressの「403 Forbidden」からの復旧
.htaccessの改ざんで「403 Forbidden」が発生すると頭が真っ白になるかもしれませんが、復旧の考え方は単純です。基本的には上記のようなコードを削除すれば解決です。
ただし、改ざんされたのは1ファイルとは限りません。数千ファイルにおよぶこともあります。
ですから、手作業で消していくのは難しい場合もあります。
その場合、過去のバックアップから復旧する方法があります。
たとえば、エックスサーバーでは自動バックアップされたサイトデータから復元することができます。
改ざんされた日より前のデータで復元するように注意してください。
また、この方法ではWordPressのファイル一式が古い内容になることにもご注意ください。
自動バックアップの復元機能がないレンタルサーバーの場合はFTPにアクセスして手動でWordPress関連ファイルを削除し、バックアップデータをアップロードすれば復旧できます。(長くなるので詳細手順はご容赦ください)
ちなみに、この記事のケースではデータベースは改ざんされていない前提なのでファイル一式の入れ替えで解決するはずですが、うまくいかない場合はデータベースの復元も検討してください。
このようにWordPressでも発生する.htaccessの改ざんによる「403 Forbidden」ですが、バックアップを頼りに落ち着いて対処すれば大丈夫です。
復旧作業がよくわからない場合などはWordPress個別サポートにご相談ください。