※当記事内には、商品プロモーションを含む場合があります
読んでほしい記事
WordPressのアクセス制限を掛けておくべきファイル・ディレクトリのまとめ

今回は、WordPressのアクセス制限を掛けておくべきファイルとディレクトリをまとめてみました。

外部から不正にアクセスされると、WordPressの中身を書き変えられたりする可能性もあります。

もちろん、不正アクセスに備えて、定期的にバックアップを取るなどの対応も大切です。
ですが、不正アクセスにより攻撃を受けてしまう可能性のあるファイルやディレクトリには、アクセス制限をかけておくことも大切です。

 

そこで、今回は、.htaccessを利用したアクセス制限の設定方法も一緒にまとめています。
WordPressを安全に運用したい方は、ぜひチェックしてください。

".htaccessを編集するのが怖い"、".htaccessの編集方法が分からない"という方もいると思います。
その場合には、プラグインを利用してアクセス制限の設定を行いましょう。

 

アクセス制限が必要なファイルと制限方法

アクセス制限の必要なファイルはこちらです。

  • xmlrpc.php
  • wp-cron.php
  • wp-login.php(ログイン画面)
  • wp-adminディレクトリ(ダッシュボード)
  • wp-config.php
  • wlwmanifest.xml
  • license.txt
  • wp-jsonディレクトリ(REST API)
  • readme.html
  • wp-config-sample.php

 

xmlrpc.phpへのアクセス制限

xmlrpc.phpは、以下の機能で使用されるスクリプトです。

・ピンバック機能(WordPressのサイトにリンクが貼られた時に通知をしてくれる)
・iPhone、Androidなどのスマホアプリからの記事の更新
・メール投稿

 

ただ、このxmlrpc.phpを使った不正投稿が度々問題になることがあります。
弊社でも、過去に1度だけ被害を受けたことがあります。

ピンバック機能なんて無くても全く問題ないです。
メール投稿機能も、今の時代、使用している人間などほぼいないです。

スマホアプリから投稿できなくなるのは痛いですが、そこまで重要ではないので、極力アクセスを制限してしまいましょう。

注意点
xmlrpc.phpは、何かしらのプラグインで使用している場合も多いです。
有名なところであれば、Jetpackxmlrpc.phpと連携している為に、xmlrpc.phpへアクセス制限が掛かっていると、機能しない部分もあります。

そもそも、Jetpackなんて使う必要があるのか?という疑問もありますが、その辺はどうするのか考慮する必要も出てきます。
もし、xmlrpc.phpへアクセス制限をかけることで何かしらのエラーが出る場合には、アクセス制限を解除しておきましょう。

 

アクセス制限の設定方法

以下の記述を行った.htaccessxmlrpc.phpと同じ階層にアップして下さい。

<Files xmlrpc\.php>
Order deny,allow
Deny from all
</Files>

 

wp-cron.phpへのアクセス制限

予約投稿やアップデート通知など時間と連動した処理に使用されるプログラムを記述したファイルです。

このwp-cron.phpも不正アクセスに利用される可能性があります。
もし予約投稿を使っていない場合や、アップデート通知不要の場合には、アクセス制限を掛けておきましょう。

 

アクセス制限の設定方法

以下の記述を行った.htaccesswp-cron.phpと同じ階層にアップして下さい。

<Files wp-cron\.php>
Order deny,allow
Deny from all
</Files>

 

wp-login.phpへのアクセス制限

wp-login.phpは、WordPressログイン画面のファイルになり、アクセス制限を掛けている方は多いのではないでしょうか?

サイト運用者や制作者以外が管理画面にログインする必要はないですよね。
なので、それら以外の人間がアクセスする必要のないファイルになります。

それに、ログイン画面へは、外部の人間にはアクセスして欲しくないです。

可能であれば、特定のIPアドレス以外からのアクセスを制限することをおすすめします。

 

アクセス制限の設定方法

以下の記述を行った.htaccesswp-login.phpと同じ階層にアップして下さい。

<Files wp-login\.php>
Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx
</Files>

「xxxx.xxxx.xxxx.xxxx」は、サイト運用者や制作者の環境のIPアドレスに変更して下さい。

これにより、「Allow from xxxx.xxxx.xxxx.xxxx」へ設定したIPアドレスのみがアクセス可能になります。
もし複数の場所からアクセスする場合には、
Allow from xxxx.xxxx.xxxx.xxxx」を追加すれば、複数のIPアドレスからのアクセスが可能になります。

 

ただし、こちは特定のIPアドレスからのアクセスのみを許可する方法になります。

なので、利用場所(オフィスなど)のIPアドレスが固定されている場合に限ります。
※固定IPアドレスを取得されていない場合には設定不可になります。

 

管理画面「wp-admin」へのアクセス制限

「wp-admin」は、管理画面のダッシュボードですね。
ダッシュボードも、wp-login.phpと同様に、サイト運用者や制作者以外がアクセスする必要のない画面になります。

こちらも、可能であれば、特定のIPアドレス以外からのアクセスを制限することをおすすめします。

 

アクセス制限の設定方法

以下を記述した.htaccessをwp-adminディレクトリ直下にアップして下さい。

Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx

「xxxx.xxxx.xxxx.xxxx」は、サイト運用者や制作者の環境のIPアドレスに変更して下さい。

ただし、こちらも、利用場所(オフィスなど)のIPアドレスが固定されている場合に限ります。

 

wp-config.phpへのアクセス制限

WordPressで使用する諸々の情報を記載するファイルです。
例えば、データベースのアカウントやテーブルのプレフィクスなど重要な情報を記述します。

その為、wp-config.phpへは直接アクセスできないようにしておきましょう。

 

アクセス制限の設定方法

以下を.htaccessに記述して、wp-config.phpと同じ階層にアップしましょう。
※既に.htaccessがアップされている場合には、そちらへ追記してください。

<Files wp-config\.php>
Order deny,allow
Deny from all
</Files>

wp-config.phpへは、サイトの管理者であってもアクセスする必要はないです。
その為、ほとんどの場合、上記の記述で問題ないです。

 

ですが、もし、特定のIPアドレスからのアクセスだけ許可したい場合には、以下のように記述してください。

<Files wp-login\.php>
Order deny,allow
Deny from all
Allow from xxxx.xxxx.xxxx.xxxx
</Files>

「xxxx.xxxx.xxxx.xxxx」は各環境のIPアドレスに変更して下さい。

 

wlwmanifest.xmlへのアクセス制限

wlwmanifest.xmlは、マニュフェストファイルと呼ばれるファイルで、wp-includesディレクトリに保存されています。
外部からの攻撃が多いファイルになり、wlwmanifest.xmlを利用してWordPressの中身が不正に書き変えられてしまうリスクもあります。

wlwmanifest.xmlは、ほとんどの方にとっては不要なファイルになるので、こちらのファイルへもアクセス制限をかけておきましょう。

Windows Live Writer利用者は注意

wlwmanifest.xmlは、「Windows Live Writer」を利用してWordPressの記事投稿を行う場合に利用されます。
「Windows Live Writer」利用者以外の方は、アクセス制限をかけておきましょう。

 

アクセス制限の設定方法

以下の記述を行った.htaccessをWordPressのインストールディレクトリにアップして下さい。

<Files wlwmanifest\.xml>
Order deny,allow
Deny from all
</Files>

 

REST API「wp-json」へのアクセス制限

REST APIとは、WEBシステムを外部から利用できるようにした仕組みです。

WordPressでもREST APIの仕組みが実装されており、外部システムからアクセスしてデータを利用することができます。
とても便利な機能ですが、誰でもアクセスできてしまうというデメリットもあります。

APIを利用されていない方は、このREST APIへもアクセス制限をかけておきましょう。

 

アクセス制限の設定方法

一番簡単な方法は、WordPressインストールディレクトリに「wp-json」というディレクトリを作成

以下を記述した.htaccessをwp-jsonディレクトリ直下にアップして下さい。

Order deny,allow
Deny from all

 

もしくは、functions.phpへ以下のコードを記述することで、機能を無効化することもできます。

function disable_rest_api() {
return new WP_Error( 'disabled', __( 'REST API is disabled.' ), array( 'status' => rest_authorization_required_code() ) );
}
add_filter( 'rest_authentication_errors', 'disable_rest_api' );

 

license.txt、readme.html、wp-config-sample.phpへのアクセス制限

インストールディレクトリ直下にある以下の3つのファイルも不要です。

  • license.txt
  • readme.html
  • wp-config-sample.php

ライセンス情報やバージョン情報なども記述されており、外部からは見られたくないファイルになります。
削除しても問題はないので、物理的に削除してしまうのもおすすめです。

wp-config-sample.phpに関しては、残しておいても問題はないですが、不要なスクリプトファイルは削除してしまいましょう。
※不要なPHPスクリプトが残っていても、脆弱性が増えるだけです。

 

ただ、削除したとしても、WordPress本体のバージョンアップの度に、同じファイルが作成されてしまいます。
その都度、手動で削除する必要もあるので注意してください。

それが面倒な方は、.htaccessを使ってアクセス制限をかけてしまうのもおすすめです。

 

アクセス制限の設定方法

<Files ~ "^(license\.txt|readme\.html|wp-config-sample\.php)$">
Order deny,allow
Deny from all
</Files>

 

記述をひとまとめにする

同じ内容を記述する場合には、コードを一つにまとめてしまうこともできます。

例えば、mlrpc.php、wp-cron.php、wp-config.phpの3つのファイルは、同一階層に設置されているファイルです。

もし、全てのファイルにアクセス制限を掛ける場合には、以下のようにひとまとめにすることも可能です。

<Files ~ "^(mlrpc\.php|wp-cron\.php|wp-config\.php)$">
Order deny,allow
Deny from all
</Files>

※複数ファイル設定する場合、パイプライン(|)で区切ります。

.htaccessへ記述するコードが増えると、ファイルが見にくくなります。
その場合には、上位のようにコードをまとめてしまうこともできます。

 

WordPressのセキュリティ設定を行えるレンタルサーバーもあり

以下のレンタルサーバーの場合、コントロールパネル上からアクセス制限をかけることも可能です。
エックスサーバー
Conoha WING

エックスサーバーであれば、このような画面上から簡単に設定を行えます。
エックスサーバーのWordPressセキュリティ設定

Conoha WINGの設定画面はこちらです。
Conoaha WINGのWordPressセキュリティ設定

ログイン試行回数を制限することも可能です。
より安全にWordPressを運営したい方は、上記レンタルサーバーを利用するもおすすめです。

 

最後に!

今回は、WordPressでアクセス制限をかけておくべきファイルやディレクトリについてまとめました。

WordPressは便利に利用でき、WEBサイトを簡単に構築できるのが大きなメリットです。
ですが、世界中に利用者が多いため、WordPressで構築したWEBサイトは悪意のあるユーザーからの攻撃対象になりかねません。

 

外部からアクセスされたくないファイルやディレクトリには、アクセス制限をかけておきましょう。

また、WordPressに関するセキュリティ設定を行えるレンタルサーバーもあります。
よりセキュリティを意識したい方は、そういったレンタルサーバーを利用するのもおすすめです。

 

この記事を書いた人
userimg
ダッチ
    プログラミング15年、WEB制作15年以上になります。

    ブログ・WordPress・レンタルサーバーに関して分からないことがあればご質問ください!
    ご質問・ご相談は無料で受け付けています。

    https://dacchi.hp.peraichi.com/

    WEB制作に関するお仕事の依頼は、こちらのホームページからお願いします。

    丹波のホームページ屋さん

    Twitterでフォローしよう

    おすすめの記事