文中の説明画像をクリックすると拡大します。
WordPressのユーザー名(ログインID)を第三者に知られないようにする方法
WordPressでWebサイト運営では、セキュリティ対策が必要です。特に、管理画面へのログインには最新の注意が必要です。
ところが、ログインで使用するIDはちょっとした方法で、第三者に簡単知られてしまいます。
例えば、WebサイトのトップページのURLが以下だとします。
http://サンプル.com/
このURLの末尾に、「?author=1」という文字列を追加してアクセスします。
http://サンプル.com/?author=1
すると、URLにログインIDが含まれたページへ自動的に移動(リダイレクト)します。
http://サンプル.com/author/【ログインID】/
つまり、WebサイトのトップページのURLに「?author=1」を追加すると、ブラウザのアドレス欄からWordPressのログインIDが知られてしまいます。
これは少し怖いですね。そこでブラウザに表示されるログインIDを別の文字列に変更できるプラグインを導入しましょう。
それが、「Edit Author Slug」プラグインです。
「Edit Author Slug」プラグインの使い方
Edit Author Slugプラグインは、WordPressの管理画面からインストールできます。プラグイン追加画面から検索して、インストールしましょう。
インストールしたら有効化しましょう。
管理画面の「ユーザー」から「あなたのプロフィール」画面を表示させます。
ログインしているユーザーのプロフィール設定画面が表示されます。ページを下にスクロールします。
投稿者スラッグという設定があり、デフォルトではログインに使われているログインIDのチェックボックスにチェックが入力されています。
これを「カスタム設定」に変更して、ログインIDとは違う文字列に設定変更しましょう。
画像では「xxxxxx」をサンプルとして入力しました。入力を終えたら「プロフィールを更新」ボタンをクリックして設定を保存します。
この状態で、WebサイトのトップページのURLに「?author=1」を追加したURLにアクセスしましょう。
このように、ログインIDが表示されていた箇所が「xxxxxx」に変更されていることが確認できます。これで、Edit Author Slugの使い方は以上です。
functions.phpを使って投稿者ページへのアクセスをリダイレクトする方法
Edit Author Slugプラグインは、ユーザー名(ログインID)の漏洩対策として非常に有用なプラグインですが、WordPressにインストールするプラグインはできるだけ少なくしたいという人にとっては、少し機能が物足りないプラグインでもあります。
プラグインを使わずとも、「?author=1」を付加されてアクセスされたときに、ログインIDが表示されているURLへリダイレクトされなければ、この問題は解決です。
そこで、WordPressのテーマフォルダにあるfunctions.phpに少しのコードを追加することで、この問題を解決する方法もあります。
「?author=1」を付加されてアクセスされた場合、ログインIDの表示されているページではなくて、ページが存在しない事を表す404.phpへとリダイレクトさせる方法です。
functions.phpへ、以下のコードを追加します。
【functions.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');
functions.phpに上記のコードが追加できたら、再度「?author=1」を付けてWebサイトのトップページにアクセスしましょう。
ログインIDが表示されているURLではなく、404.phpへとリダイレクトされるはずです。
なお、404.phpではなくトップページに転送させたい場合は、「/404.php」のところを「/」とスラッシュだけに書き換えてください。
ユーザー名(ログインID)を非表示にしても安心はできない
WordPressのデフォルトの状態では、ユーザー名(ログインID)が簡単に知られてしまうことを紹介しました。
その対策として、Edit Author Slugプラグインの使い方と、functions.phpへコードを追加して404.phpへリダイレクトさせる方法についても解説しました。
これらの方法は、あくまでも使用しているログインIDを知られないようにするための対策に過ぎません。つまりログインID自体が変更されるわけではありません。
WordPressのデフォルトでは、「admin」という文字列がログインIDとして設定されています。
今回紹介した方法で、ログインIDを知られることがなくなったからといって、「admin」のような単純なログインIDのまま運営することは避けてください。
WordPressに限らず、ログイン画面への攻撃では、「admin」のように良く知られている文字列をログインIDと想定して攻撃されることがよくあります。
よく言われる、パスワードを難解にするという対策が最も重要ですが、ログインIDに関しても、デフォルトのものをそのまま使わないということも大切です。
デフォルトのログインIDである「admin」を使わない事を前提として、Edit Author Slugプラグインを導入したり、functions.phpによるカスタマイズを実行したりすることが重要です。
まとめ
- WordPressのユーザー名(ログインID)は、簡単に第三者に知られてしまう。
- WordPressのユーザー名を別の文字列として表示させる「Edit Author Slug」プラグインがある。
- WordPressのユーザー名は、デフォルトの「admin」ではなく、別の文字列を設定して運用する。