【セキュリティ対策】WORDPRESSのログインURLを変更する

この記事はブログとプログラミングで生計をたてている海外在住ウェブディベロッパーがわかりやすさにこだわって作成しました

まず、基本的に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をプラグインを使わないで変更する方法

laptop 593673 640 530x342 - WordPressのログインURL変更方法!プラグインを使わない場合も解説

冒頭ではプラグインを利用したURLの変更方法をお伝えしましたが、プラグインを使わない方法もあります。

その手順は以下のようになります。

  1. ログインするために必要なPHPファイルを作成する
  2. 「functions.php」を編集する
  3. 新しいログイン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を公開している以上常にハッカーに狙われているということを忘れずに対策しましょう。

PHP/Javascript/WORDPRESS案件全般承ります

オーストラリアで主に日系企業や個人のお客様からのご依頼でお仕事をしております。この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました