.htaccessへ追記して行うWordPressのセキュリティ対策

公開日:2025(令和7)年7月27日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPressではいつでもどこからでも管理ができるのが魅力ではあるものの、この利便性を悪用したスパム行為が多いのが難点ですが、これは多くの人が利用する人気ツールだから仕方ないことでもあります。

そこで本ページでは、WordPressがインストールされている場所にある.htaccessへ追記してセキュリティアップを図るためのコードを、追記する意味や意義についての情報も含めいくつか紹介します。

wp-config.phpへの直接アクセスを拒否

wp-config.phpは主にWordPressのプログラムが呼び出すデータベースとの接続情報など、サイトを構成するための基本情報や制御情報が書かれています。

つまり外部からこのファイルに直接アクセスできる状況になっていると、重要な情報の漏洩や不正な書き換えなどが行われる可能性があります。

通常このファイルはサーバーへのログイン情報などがなければ触れる領域ではありませんが、プログラムを使って情報を読み取ったり操作したりということもあり得ないことではありません。

そこで以下のコードを.htaccess内へ追加して、サーバー内部からの読み取り指示以外は拒否するようにすることで、セキュリティアップが期待できます。

# wp-config.phpへの直接アクセスを拒否
<files wp-config.php>
order allow,deny
deny from all
</files>

標準のログイン画面へのアクセスを制限する

<FilesMatch "wp-login.php">
  Order deny, allow
  Deny from all
  Allow from 許可するグローバルIPアドレス
</FilesMatch>

【補足コード】の追加手順と確実に機能しているかのチェック方法

  1. 現在インターネットにアクセスしているグローバルIPアドレスはこちらのページなどで確認し、コードの「許可するグローバルIPアドレス」の部分を書き換えて.htaccessへ追加します。
  2. サイトのログイン画面が表示できるかをテストします。
  3. 念のため、別のグローバルIPアドレスを設定してアクセスが拒否されるかをチェックします。拒否されることが確認できたら元のグローバルIPアドレスに戻して完了です。

管理画面へのアクセスを制限する

ルートディレクトリへ追加する場合のコード

# wp-adminへのアクセスを制限
<Directory "サーバーのパス/wp-admin">
  Order deny,allow
  Deny from all
  Allow from 許可するグローバルIPアドレス
</Directory>

サーバーのパスの確認方法

例として、このサイトを収容しているカラフルボックス ColorfulBoxにおけるサーバーパスは以下のようになります。

/home/ユーザーID/public_html/ディレクトリ

カラフルボックス ColorfulBoxサーバーの場合、cPanelメイン画面の右上にある「現在のユーザー」欄の値がユーザーIDになります

その他のサーバーについてはサーバーのヘルプを参照する、サーバーに問い合わせるなどして確認ください(ネット上でサーバーパスについて紹介しているサイトがありますが、正確でない可能性がありますのでご注意ください)。

【補足コード】の追加手順と確実に機能しているかのチェック方法

  1. サーバーのパスと現在アクセスしているグローバルIPアドレスの確認をし、コード内のそれぞれの箇所を書き換えて.htaccessへ追加します。
  2. サイトの管理画面が表示できるかをテストします。
    • 管理画面が表示できない場合は、サーバーのパス、または、アクセスしているグローバルIPの値が間違っている、または、コード中に全角文字や全角スペースが入っているケースが多いので再確認してください。
  3. 念のため、別のグローバルIPアドレスを設定してアクセスが拒否されるかをチェックします。拒否されることが確認できたら元のグローバルIPアドレスに戻して完了です。

サブディレクトリへ追記する場合のコード

サイト運用のケースとして、ルートディレクトリに1つのWordPressをインストールして、同じ階層に任意のディレクトリ(フォルダ)を作り、その中に別のWordPressをインストールして別々に稼働させていることもあるでしょう。

.htaccessへ記述した情報は、特に指定がない限り、親ディレクトリの内容が下層のディレクトリにも適用される仕組みになっていますので、サブディレクトリにはそれ用の記述を行います。

サブディレクトリのWordPressサイトがあるのに、以下のコードをサブディレクトリ内の.htaccess内に追記しなかった場合、サブディレクトリにあるサイトの管理画面が開けなくなりますので必ず追記してください。

# wp-adminへのアクセスを自宅のみに制限(サブディレクトリ用)
<Directory "wp-admin"> # 相対パスでOK
  Order deny,allow
  Deny from all
  Allow from 許可するグローバルIPアドレス
</Directory>

XML-RPCを無効にする

リモートやメールでの投稿などを行うために用意されているXML-RPCという機能ですが、ほとんどの場合、この機能を使用することはありません。

しかしながら、この機能を使って裏?からアクセスしようとするスパム行為が多いため、以下のコードを追記して、機能を無効にします。

# XML-RPCを無効化
<Files xmlrpc.php>
  Order deny,allow
  Deny from all
</Files>

WordPressのフックを使って無効にするようなプログラムが多数紹介されていますが、それらはWordPressに到達した後に機能するものであり、根本解決にはならないと思いますから、.htaccessファイルへコードを追記して到達前に拒否する措置をすることをおすすめします

Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
プラグインなしでサイト内に英語の代替ページを作る方法