ユーザー名が丸見え!? 表示を変更する2つの方法【WordPress のセキュリティ対策しよう】

WordPress のニックネームは変更したけど、ユーザー名が丸見えってどういうこと?

 

そんな不安にお答えします。

この記事の内容
  • ユーザー名を簡単に調べる方法
  • ユーザー名を非表示にする方法
  • ユーザー名を変更する2つの方法【おすすめ
 

WordPress を立ち上げた時に、セキュリティのことを考えて「ユーザー名」と「ニックネーム」は別に設定するよう解説本などには書かれていますよね。

リョウ

でも、実は変更しても「ユーザー名」は丸見えの状態なんです。
 

ということで、WordPress の「ユーザー名」を非表示にする方法・変更する方法を解説します

「ユーザー名」は簡単に分かるんです

WordPress の入門的な記事には、

「ユーザー名」と「ニックネーム」が一緒だとセキュリティ上で問題がある

というのですが、「ニックネーム」を変えただけではセキュリティ的に問題が完全には解決していません
 

この話を聞いたのが初めてという人は、下記を自分のブログの URL 後ろにコピペしてください。

URL
/?author=1

このブログを例にすると、

URL
https://bryog.com/?author=1

という状態ですね。
 

そして、Enter を押すと…

URL
/author/ユーザー名/

上記のように自分のユーザー名が表示されてませんか?

えっ!? なんで???

リョウ

/?author=1 と URL に追加すると、/author/ユーザー名/ で返すようになってるんだ。

そのため、何も対策をしていなければ「ニックネーム」を変えても「ユーザー名」は簡単に調べることができちゃいます。

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

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

URL
/?author=数字

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

ユーザー名がバレてしまうと困る理由

WordPress にログインする時に、「ユーザー名」と「パスワード」を入力しましたよね。

「ユーザー名」がバレてしまうということは、あとは「パスワード」をなんとかしてしまえばログインできる可能性が高くなるということになります。

「ユーザー名」さえ知ってしまえば、あとは何パターンも試して総攻撃してくることもあります。

リョウ

だから、「ユーザー名」は知られないようにしましょう。

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つの方法【おすすめ】

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

それは、

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

これらの場合は /?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 からユーザー名を変更しています。

WordPress は標的にされやすいので、最低限のセキュリティ対策をして安全に運営できるようにしておきましょうね。