こちらのサイトではDRUPAL10に関連する記事を掲載しています。
まず、基本的にWordPressのログインURLは以下の2つのいずれかかと思います。
- http://サイトのURL/wp-login.php
- http://サイトのURL/wp/wp-login.php
ただし、WordPressのログインURLをデフォルトのままにしておくということは、WordPressを使っているサイトであると判明した瞬間、ログインURLも簡単に知られてしまうということです。
すると、そのログインURLに対して攻撃を与えられてしまう可能性もあります。そこでこのような攻撃を防ぐためには、ログインURL自体を変える必要があります。
ここではプラグインを使ってログインURLを変更する方法と、プラグインを使わずにログインURLを変更する方法をそれぞれご紹介します。
WPS Hide Loginプラグインをインストールする
まずはプラグインをインストールしましょう。
プログラミングやWordPressの知識がなくても大丈夫。
STEP1.プラグインをインストール
WordPress管理画面から、①「プラグイン」 → ②「新規追加」へと進みます。
③「WPS Hide Login」で検索し、表示されたら「今すぐインストール」をクリックします。
STEP2.プラグインを有効化
「有効化」をクリックし、プラグインを機能させます。
STEP3.設定画面を開く
WordPress管理画面から、①「設定」 → ②「WPS Hide Login」へ進み、設定画面を開きます。
STEP4.ログインURL
「WPS Hide Login」の「Login url」に、上記のように赤枠で囲った部分があるので、ここに変更したい文字列を入力します。
初期設定では「login」が記載されているので、これを上書きしてください。
STEP5.変更して保存
なるだけ推測されないような名前にしてください。
最後に「変更を保存」をクリックします。
変更したら忘れないように必ずメモをとっておきましょう。
STEP6.変更完了
これでログインURLの変更が完了しました。
いったんログアウトすると、変更されたログイン画面に遷移します。
URLが変更されていることを確認できると思います。
WordPressのログインURLをプラグインを使わないで変更する方法
冒頭ではプラグインを利用したURLの変更方法をお伝えしましたが、プラグインを使わない方法もあります。
その手順は以下のようになります。
- ログインするために必要なPHPファイルを作成する
- 「functions.php」を編集する
- 新しいログインURLで確認する
それでは具体的にみていきます。
1.ログインするために必要なPHPファイルを作成する
まず、ログインするために必要になるPHPファイルを作成します。
例えば、「http://サイトのURL/wp-test-login.php」にしたい場合は、「wp-test-login.php」という名前のファイルを作成します。
ここで作成するPHPファイル名が、そのままログインURLになります。ファイル名はどんな名前でも構いません。
ファイルには、以下のコードを記述してください。
<?php
define( 'LOGIN_CHANGE', sha1( 'keyword' ) );
require_once './wp-login.php';
?>
2行目にある「keyword」は、このプログラムの中でキーワードになる部分です。好きなものに変更してください。
2.「functions.php」を編集する
次に「functions.php」を編集します。この「functions.php」は、WordPressの中でも一番重要なファイルです。
このファイルに1つでも記述ミスがあると、ログインできなくなってしまうので、編集する前に必ずバックアップを取っておきましょう。
そうしてバックアップを取った後に、以下のコードを追記してください。
// WordPressの管理画面ログインURLを変更する
define( 'LOGIN_CHANGE_PAGE', 'wp-test-login.php' );
add_action( 'login_init', 'login_change_init' );
add_filter( 'site_url', 'login_change_site_url', 10, 4 );
add_filter( 'wp_redirect', 'login_change_wp_redirect', 10, 2 );
// 指定以外のログインURLは403エラーにする
if ( ! function_exists( 'login_change_init' ) ) {
function login_change_init() {
if ( !defined( 'LOGIN_CHANGE' ) || sha1( 'keyword' ) != LOGIN_CHANGE ) {
status_header( 403 );
exit;
}
}
}
// ログイン済みか新設のログイン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;
}
}
// ログアウト時のリダイレクト先の設定
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;
}
}
2行目のPHPファイルは、1で作成したファイル名を記述してください。
そして、10行目の「keyword」は、1で記述したキーワードを記述してください。
3.新しいログインURLで確認する
最後に、新しく作成したログインURLでアクセスし、正しくログインできるか確認してみましょう。
まとめ
今回はプラグインを使ってログインURLを変更してみました。
WordPressは世界中で最も使用されているCMSなので、その分ハッカーの餌食になりやすいといえます。ログインURLを変更することでログイン時のセキュリティーはかなり強化されたと思いますが、万全ではありません。URLを公開している以上常にハッカーに狙われているということを忘れずに対策しましょう。
この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。