【セキュリティ対策】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をコピーしました