通常、サーバーにWordPressを設置すると、
- https://【サイトURL】/wp-login.php
- https://【サイトURL】/wp/wp-login.php
が管理画面へのログインページURLとして設定されます。
WordPressを使っているサイトと知られた場合、上記のようにデフォルトのURLのままでは、簡単にログインページのURLを知られてしまいます。
すると、そのログインページURLに対して攻撃をされてしまい、中のデータが変更されたり削除されたり、最悪の場合サイト自体が壊されてしまう可能性もあるでしょう。
このページでは、これらを防ぐために有効なセキュリティ対策「ログインページURLの変更」について、お話しします。
プラグインを使った方法・プラグインを使わない方法どちらも紹介しています。お読みになった上で、自分に合った方法で対応していただければと思います。
目次
プラグインなしでWordPressのログインページのURLを変更する方法
まずはプラグインを用いないログインURLの方法についてです。
※ファイルの追加やテンプレート内のコードの変更を行います。これらを行いたくない・行えないという方は、この次の「プラグインを用いてWordPressのログインURLを変更する方法」を読んで対応してください。
ログインページ用のファイルを作成してアップロードする
まずはログインURLの決定をしましょう。
デフォルトの
https://【サイトURL】/wp-login.php
https://【サイトURL】/wp/wp-login.php
以外のURLを選択すればどんなURLでも問題ありません。
そして、決定したログインURLに応じた名前のファイルを作成します。
例えば、ログインURLとして
https://【サイトURL】/wordpress-admin-login.php
に決定した場合、作成するファイル名は、wordpress-admin-login.phpです。
そしてファイルの中には、下記のコードを記述します。
<?php
define( 'LOGIN_CHANGE', sha1( 'keyword' ) );
require_once './wp-login.php';
?>
記述が完了したら、サーバーにアップロードします。
アップロード先は、wp-login.phpと同じ階層です。他には、wp-contentフォルダやwp-includesフォルダ、wp-config.phpファイルが置いてあるディレクトリです。
ちなみに、wp-login.phpは削除せずそのままにしておいてください。
functions.phpにコードを追加する
functions.phpに下記のコードを追加します。コピペしていただいて構いません。
xxxxxx.phpとなっている部分には、ログイン用ファイルの名前を入力します。
// WordPressの管理画面ログインURLを変更する
define( 'LOGIN_CHANGE_PAGE', 'xxxxxx.php' );
// 指定以外のログインURLはTOPページへリダイレクト
if ( ! function_exists( 'login_change_init' ) ) {
function login_change_init() {
if ( !defined( 'LOGIN_CHANGE' ) || sha1( 'keyword' ) != LOGIN_CHANGE ) {
wp_safe_redirect( home_url() );
exit;
}
}
}
add_action( 'login_init', 'login_change_init' );
// ログイン済みか新設のログインURLの場合はwp-login.phpを置き換える
if ( ! function_exists( 'login_change_site_url' ) ) {
function login_change_site_url( $url, $path, $orig_scheme, $blog_id ) {
if ( $path == 'wp-login.php' &&
( is_user_logged_in() || strpos( $_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE ) !== false ) )
$url = str_replace( 'wp-login.php', LOGIN_CHANGE_PAGE, $url );
return $url;
}
}
add_filter( 'site_url', 'login_change_site_url', 10, 4 );
// ログアウト時のリダイレクト先の設定
if ( ! function_exists( 'login_change_wp_redirect' ) ) {
function login_change_wp_redirect( $location, $status ) {
if ( strpos( $_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE ) !== false )
$location = str_replace( 'wp-login.php', LOGIN_CHANGE_PAGE, $location );
return $location;
}
}
add_filter( 'wp_redirect', 'login_change_wp_redirect', 10, 2 );
以上で、プラグインを用いない形でのログインURL変更が完了です。
プラグインを用いてWordPressのログインページのURLを変更する方法
続いてプラグインを用いてログインページURLの変更を行う方法です。
ログインURLを変更できるプラグインはいくつかありますが、このページでは、「WPS Hide Login」と「SiteGuard WP Plugin」の2つを紹介します。
- WPS Hide Login:シンプルにログインURLの変更のみを行いたい方
- SiteGuard WP Plugin:様々なセキュリティ対策を施したい方
どちらのプラグインも、多くの人に用いられており、評価が高く、定期的にアップデートされているものなので安心して使えるものです。ご自身に合うものを選択してください。
「WPS Hide Login」でログインページのURLを変更する方法
まずはプラグインをインストール、有効化します。
管理画面のメニュー内「設定」の中に「WPS Hide Login」というメニューがあるので、そこをクリックして設定画面に遷移します。
「WPS Hide Login」> 「Login url」の中にフィールドがあるので、その中にログインURLのパスを記述、保存をします。
以上でログインURLの変更が完了しますので、実際にログインページとなるURLを開いて確認しましょう。
「SiteGuard WP Plugin」でログインページのURLを変更する方法
続いて、「SiteGuard WP Plugin」を用いたURL変更方法です。
まずはプラグインをインストール、有効化します。
プラグイン有効化に伴い、管理画面のメニュー内に「SiteGuard」という項目ができます。そこをクリックした先で表が出てきますので、「ログインページ変更」を選びます。
「変更後のログインページ名」という項目の中にフィールドがあるので、その中にログインURLとなるパスを記述します。
以上でログインURLの変更が完了しますので、実際にログインページとなるURLを開いて確認しましょう。
なぜ、WordPressのログインページのURLは変更した方が良いのか?
ここまで、WordPressのログインURLの変更方法についてお伝えしてきました。では、なぜWordPressのログインURLは変更した方が良いのでしょうか。
それは一言で言うと、サイトを守るためです。
WordPressは世界で最も使用されているCMSであるゆえに、悪質な攻撃を仕掛けられることが多いです。
その攻撃の一つが、「ブルートフォースアタック(総当たり攻撃)」と呼ばれるものです。これは、あらゆるパターンのID・パスワードでログインを試みる攻撃です。
ログインに成功した後にサイトの内容を改変・削除したり、踏み台として利用したりなどあらゆる悪影響が起きるでしょう。また、そのサイトが個人情報を持っている場合、それら情報が漏洩してしまうと多大なる被害が発生してしまいます。ひょっとしたら賠償責任を負うことになってしまうかもしれません。
ログインURLを変更するのは、そのブルートフォースアタックを防ぐ有効なセキュリティ対策なのです。
WordPressのログインページに関するその他のセキュリティ対策
ここまで、WordPressのログインURLの変更についてお話ししてきましたが、なにもログインURLの変更だけがセキュリティ対策ではありません。
ここでは、URL変更「以外」のログインページに関するセキュリティ対策について紹介します。
ログインページにBasic認証をかける
まずはログインページにのみBasic認証(ベーシック認証)をかけるという方法です。
Basic認証とは、Webサイトの特定のページに対してアクセス制限をかける認証のこと。ページにアクセスしようとすると、「ユーザー名」「パスワード」を求められます。
WordPressのログインページに対して、このBasic認証を実施すれば、ユーザー名・パスワードが分からないユーザーは、WordPressのログインページに到達すらできなくなります。
いわゆる、2つの鍵をかけて管理画面を守るという方法です。
画像認証・ログインロックなどの設定を追加する(SiteGuard WP Pluginを導入している場合)
他には、画像認証・ログインロックの設定を追加するなどが挙げられます。
画像認証は、ログインページで、「ユーザー名またはメールアドレス」「パスワード」の他に、画像に記載されている文字を入力するというものです。SiteGuard WP Pluginを用いれば、ひらがなもしくは英数字どちらかを選択することが可能です。
ログインロックは、ログインを特定の回数失敗した場合に、一定の時間ログインできないようにロックをかける機能です。これにより連続でのログイン試行を防ぐことができます。
こちらもSiteGuard WP Pluginを用いれば詳細に設定をすることが可能です。失敗回数は「3回/10回/100回」から、ロックする時間は、「30秒/1分/5分」から選ぶことができます。
また、下記のページでは、SiteGuard WP Pluginの機能を全て紹介しています。どれもセキュリティ対策に有用な機能なので確認してみてください。
このページのまとめ
以上が、プラグインを用いた場合・用いなかった場合のWordPressのログインURLの変更方法です。
WordPressにおいてログインURLの変更は、基礎となるセキュリティ対策です。まだ実施していない方は是非ともこれを機に導入してみてください。
また、後半で説明した通り、ログイン画面に関するセキュリティ対策は他にもあります。いずれも簡単に導入できる対策なので利用してみてください。