2020.2.13

【htaccessで対応】WordPressのログイン画面のURLを変更してセキュリティを高める方法

はじめに

皆様は、WordPressの管理画面のログインURLを変更しているでしょうか?

何も対策をしていないと、WordPressのログイン画面にアクセスするのは誰にでも出来てしまいます。

/wp-admin/
/wp-login/

上記は一例ですが、ドメインの後に、このようなパスでログイン画面にアクセス出来てしまいます。

 

ログイン画面にアクセス出来るということは、極端な話、IDやパスワードを何度も入力してしまえばログイン出来てしまうということです。

いわゆる、ブルートフォースアタックというやつです。

これを防ぐために、WordPressでログインURLを変更するのは、絶対に行うべき作業のひとつです。

 

今回は、ログインURLを.htaccessで変更するやり方の紹介です。

.htaccessでログインURLを変更する

コード

ドメイン直下にある.htaccessに以下のコードを追記します。

注意点
.htaccessを編集する際は、必ずバックアップを取っておきましょう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^enter/?$ /wp-login.php?○○○○○○○○○○○○○○○○○ [R,L]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^dashboard/?$ /not_found [R,L]
RewriteRule ^dashboard/?$ /not_found [R,L]

RewriteRule ^register/?$ /wp-login.php?○○○○○○○○○○○○○○○○○&action=register [R,L]
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php

RewriteCond %{HTTP_REFERER} !^(.*)https://domain.co.jp/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)https://domain.co.jp/wp-login\.php
RewriteCond %{HTTP_REFERER} !^(.*)https://domain.co.jp/enter
RewriteCond %{HTTP_REFERER} !^(.*)https://domain.co.jp/dashboard
RewriteCond %{HTTP_REFERER} !^(.*)https://domain.co.jp/register

RewriteCond %{QUERY_STRING} !^○○○○○○○○○○○○○○○○○
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=register
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^.*$ /wp-login.php?○○○○○○○○○○○○○○○○○ [R,L]
</IfModule>

解説

上記コードでは、2箇所の書き換えが必要です。

  1. ○○○○○○○○○○○○○○○○○となっている箇所を、任意の文字列(英字と数字の組み合わせ)にします
    これが、ログインURLになります
  2. https://domain.co.jpとなっている箇所を、ご自身のサイトのURLにします

 

編集後、本番にアップしてみて下さい。

試しに、https://domain.co.jp/wp-adminでアクセスしてみて下さい。おそらく、404 not found になるはずです。

もし変わらない場合は、以下2つの可能性があります。

  • シークレットモードで試してみる(キャッシュが残っているから、もとの情報が上書きされていない)
  • 記述ミス

まとめ

ログインURLの変更はプラグインでも出来ますが、この程度の処理の場合は.htaccessで行うほうがいいでしょう。

もし、プラグイン側にセキュリティホールがあり、そこを悪意のあるユーザが狙ったら、ログインURLなどの情報が漏れてしまうこともあります。

WordPressのプラグインは便利な半面、使いすぎると管理が面倒になったり、更新を放置してしまい脆弱性がある状態でサイトを運用してしまうこともあったりするので、個人的には出来るだけプラグインを使わないことをおすすめ致します。

シェアする
フォローする
Web-Guided - web業界で働く方を少しだけ手助けするメディア