【セキュリティ対策】WPのユーザー名の漏洩を防ぐ方法

2021/2/22

2021/10/5

3861 views

WPユーザー名セキュリティ

WordPressにログインするには「ユーザー名」と「パスワード」が必要です。
ログインに必要な重要項目なので、厳重に秘密しているでしょうが、実は、ユーザー名の方はだだ漏れなんです。

ユーザー名が確認できてしまう方法が2つもある

簡単にユーザー名が取得できる方法があります。
あなたのワードプレスサイトのドメインの後ろに、「/?author=1」を付けてアクセスしてみてください。
すると、URLかタイトルかページ内のどこかユーザー名が表示されてしまったかと思います。

https://ドメイン名/?author=1

また、もうひとつ取得できてしまう方法があります。
以下のようにドメインの後ろに/wp-json/wp/v2/usersを入力してください。

https://ドメイン名/wp-json/wp/v2/users

表示例

これでもユーザー名が露呈したはずです。
これは、WordPress 4.4以降から導入されたwp-jsonからREST APIというウェブの情報を共有できる仕組みを利用しているためです。

つまり、ワードプレスサイトのユーザーIDはとても簡単に取得されてしまうのです。
もちろんパスワードは閲覧できないためログインはできませんが、セキュリティ保護の観点からは非常に脆弱になりますし、ユーザー名から社員の名前などを取得されるなどプライバシーの保護にもリスクがあります。

対策方法

上記の2つの場合のそれぞれの対策を解説します。
両方行ってください。

1. 1つ目の場合の対策方法

まず、上記の1つ目の「https://ドメイン名/?author=1」でユーザー名が露呈してしまうことの対策方法ですが、function.phpに以下の記述をすることで404.phpへ飛ばすことができます。

functuin.php

/* @ サイトのURL/?author=1でのユーザー名の漏洩を防止
----------------------------------------------------------------------------- */
function disable_author_archive() {
  if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
    wp_redirect( home_url('/404.php') );
    exit;
  }
}
add_action('init', 'disable_author_archive');

2. 2つ目の場合の対策方法

次は2つめの、REST APIを利用した「https://ドメイン名/wp-json/wp/v2/users」で露呈してしまう対策ですが、WordPressプラグインの「XO Security」を使用する方法を解説します。
※ちなみに、「Disable WP REST API」という同様のプラグインもありますがなぜか効きませんでした

XO Securityの使い方

「プラグイン」から「XO Security」をインストールし、有効化します。

 

「設定」>「XO Security」へ進みます。

REST APIのタブを選択し、「REST API の無効化」にチェックを入れます。
/wp/v2」の項目(親)にチェックを入れます。
以上で完了です。
REST APIをすべて無効にするとContact Form7などが動作しなくなるため注意ください。

まとめ

以上、ワードプレスユーザー名の漏洩を防ぐ方法の解説でした。
パスワードを強固なものにするのはもちろ、ユーザー名も守ることでより一層セキュリティを強化することができます。

この記事へのコメント

  • まだ書き込みはありません

コメントを残す



このサイトの表示速度はどうですか?

当サイトはレンタルサーバーにConoHa WING(コノハウイング)を使っていますよ。

ページの先頭に戻る