WordPress のユーザー名を変更する方法【実は丸見えだから危険です】

WordPress のニックネームを変更した方が安全だって本に書いてあったけど、実際にどうなんだろう…

 

と心配になっている人もいるでしょう。

そこで、この記事では下記の内容を解説していきます。

この記事で分かること

  • ユーザー名をあぶり出す方法
  • ユーザー名を非表示にする方法
  • ユーザー名を変更する2つの方法

 

WordPress の教科書などでは、セキュリティの面からユーザー名とニックネーム(サイトに表示する名前)は別にしましょうと解説してあることがあります。

でも、実はニックネームを変えただけでは簡単にユーザー名を確認することができます
 

そのため、セキュリティのことを考えユーザー名を非表示、または変更しておくようにしましょう。

WordPress でユーザー名をあぶり出す方法

WordPress ユーザー名

 

ユーザー名とニックネームを別にした方が安全だと言われ始めた理由の1つが、ユーザー名を知られてしまうと後はパスワードさえなんとかしてしまえばログインできてしまうというところからなんです。

でも、実はとても簡単にユーザー名をあぶり出すことができます
 

まずは、自分のサイトの URL 直後に下記をにコピペしてみてください。

URL

/?author=1

 

このサイトを例にすると、

URL

https://otomami.org//?author=1

という状態ですね。
 

そして、Enter を押すと…

URL

/author/ユーザー名/

とユーザー名がしっかりと表示されているはずです。
 

これは、/?author=1 と入れるとユーザー名で返すようになっているんです。

なので、単純に「ニックネーム」を変えただけでは全く意味がありません

複数のメンバーでブログを運営している場合

複数のメンバーがユーザーとして登録されている場合は、数字の部分を増やしていけば同じように「ユーザー名」が表示されてしまいます。

URL

/?author=数字

 

例えば、2人目に登録さえているユーザーがいれば、/?author=2 と入力して Enter を押すと2人目の「ユーザー名」が表示されます。

ユーザー名を非表示にする方法【でも不十分】

WordPress ユーザー名

 

ユーザー名が表示されないようにする方法は、

  • プラグインを使う【初心者】
  • PHP にコードを追加する【中級者】

の2つがあります。

All In One WP Security を使って非表示にする方法【初心者】

WordPress ユーザー名

 

セキュリティ全般の対策をしてくれるプラグイン「All In One WP Security」では、ユーザー名を確認するページを表示させないようにすることができます

設定も簡単で、メニューから「Miscellaneous」に入り、「Users Enumeration」にチェックを入れれば完了となります。

PHP にコードを追加して 404 にリダイレクトする方法【中級者】

PHP にコードを追加して、そのページは存在しません(404エラー)を表示させる方法もあります。
 

コードを追加と言っても、下記を function.php にコピペするだけで OK です。

PHP

add_filter( 'author_rewrite_rules', '__return_empty_array' );
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');

 

実際に /?author=1 で確認してみると分かりますが、404 のページが表示されるはずです。

WordPress のユーザー名を変更する2つの方法【おすすめ】

WordPress ユーザー名

 

先にユーザー名を非表示にする方法を解説したのですが、使っているテーマやデザインによっては不十分な場合があります
 

それは、

  • 記事の前後に投稿者名を表示している
  • 記事の最後に投稿者情報を表示している

これらの場合は /?author=1 を入れた時だけ非表示にはなりますが、記事内に表示されている投稿者名などをクリックするとすぐにバレてしまいます。

オトマミ

そもそも、ソースを見ると1発で分かってしまうんですけどね。

 

このことから、/?author=1 を入れた時に非表示にする対策はセキュリティ的には十分とは言えません。
 

そこでおすすめする対応は、表示されるユーザー名を変更するというもの
 

方法は2通り、

ユーザー名を変更する方法【おすすめ】

  • プラグインを使う方法【初心者】
  • phpMyAdmin を編集する方法【中級者】

それぞれを解説しましょう。

Edit Author Slug を使う方法【初心者】

WordPress ユーザー名

 

ユーザー名を別の名前にすり替えることができるプラグイン「Edit Author Slug」は、自分の好きな名前に変更が可能です

有効にすると、ユーザーの編集画面の一番下に「Edit Author Slug」という項目が追加されるので、自動で生成されたユーザー名を選択するか、もしくは「カスタム設定」で自分の好きな名前を付けることができます。

phpMyAdmin を編集する方法【中級者】

「Edit Author Slug」と同じように名前を変更するだけですが、プラグインを使わずにサーバー側でユーザー名の表記を変更することができます。

オトマミ

プラグインの数を極力少なくしたいという人以外は、Edit Author Slug を使った方が簡単ではあります。

phpMyAdmin にアクセスする

mixhost を使っている人は、cPanel にある「データベース」のカテゴリーにある「phpMyAdmin」をクリックします。
 

エックスサーバーの人は、サーバーパネルにある「phpMyAdmin」をクリックすると、ID とパスワードを求められます。

ただ、この ID とパスワードは自分で発行するものになるので、まずは ID とパスワードの発行作業から始めましょう

オトマミ

mixhost でもエックスサーバーでも phpMyAdmin の画面は基本が同じなので、mixhost の人は少し読み飛ばしてください。

エックスサーバーで phpMyAdmin にアクセスする方法が分からない場合

エックスサーバーでは、まず「ログインID 」と「パスワード」を作成する作業から始めます。
 

「MySQL設定」に入り、「MySQLユーザー追加」のタブに切り替えます。

そして、ID(9文字以内)とパスワードを入力して「確認画面へ進む」のボタンを押します。

WordPress ユーザー名

 

すると「MySQLユーザーを追加しますか?」と表示されるので、入力内容を確認して「追加する」のボタンを押します。

WordPress ユーザー名

 

次に作ったばかりのユーザーに権限を付与するために、「MySQL一覧」を開きます
 

一覧の中から設定を変更するデータベースを探して、「アクセス権未所有ユーザー」のドロップダウンから先ほどの作ったユーザー名を選んで「追加」のボタンを押します。

WordPress ユーザー名

どのデータベースか分からない場合
どのデータベースなのか分からない場合は、WordPress インストールの詳細から確認することができます。

 

そして、「MySQLデータベースへのアクセス権の追加を完了しました。」と表示されれば「ログインID 」と「パスワード」の作成が完了となります。

WordPress ユーザー名

 

そしたら、サーバーパネルからまた phpMyAdmin にアクセスして、「ログインID」と「パスワード」を入力してログインしてください。

phpMyAdmin からユーザー名を変更する

phpMyAdmin にアクセスしたら、左側にデータベース名が表示されているので、名前の左にある「」をクリックしてメニューを開きます。

WordPress ユーザー名

 

その中から「wp_users」を見つけてクリックします。(mixhost の場合は「wphr_users」などになっています。)

WordPress ユーザー名

 

するとユーザー情報が表示されるので、「編集」を押します。

WordPress ユーザー名

 

そして、一覧の中にある「user_nicename」の値の部分に表示されている名前を変更して、右下にある「実行」のボタンを押してください。

WordPress ユーザー名

 

そして、

UPDATE `データベース名`.`wp_users` SET `user_nicename` = ‘変更した名前’ WHERE `wp_users`.`ID` = 1;

のように表記されたら完了となります。

まとめ:ユーザー名も変更しておきましょう

以上で、WordPress のユーザー名を変更する方法を紹介しました。
 

phpMyAdmin で設定した人は気づいたと思いますが、実は「ログインのID」「ユーザーID」「サイトに表記する名前」の3つを別々にすることができるってことなんです

意外とこの対策をしていない人は多いので、知り合いのサイトが未対策だった場合にはシェアしてあげてくださいね。