デフォルトの状態のWordPressは、管理画面にログインする際に必要な「ユーザー名」が「見える」状態になってしまっています。
本来、「ユーザー名」は本人と、サイト管理者だけが知るべき情報です。ユーザー名とパスワードを組み合わせたログイン方式の場合、当たり前の話となりますが、まずユーザー名を識別し、次にパスワードを認証するという2つの段階を経てログインをします。ユーザー名は「あなたは誰」に対する返答で、パスワードは「あなたである証拠」に対する返答なのです。
デフォルトの状態のWordPressは、この2つのキーのうちの1つである「ユーザー名」が誰もが「見える」状態にあります。このまま何の対策もしなければ、あなたのWordPressで作られたサイトは、悪意のある他人に目に留まってしまった場合、様々なツールでパスワードを解析され、大切に運営してきたサイトであっても、簡単に乗っ取られてしまうかもしれないのです。
今回は、WordPressのインストール後、最初に対応すべきセキュリティ対策として、ユーザー名の変更と、誰からも見えてしまっているユーザー名を見えない状態にする方法を紹介いたします。
自分のサイトの自分のユーザー名が、本当に誰からも見える状態になっているのかを確認する方法
自分のサイトURLの後に「/?author=1」と入力してみてください。FITを例にするなら、「https://fit-jp.com/?author=1」となります。「/?author=1」で404エラーページが表示される場合は、数字を1から順番に2,3,4,5,6,7,8,9と1つずつ増やしてページを更新してください。
もしも、すべて404ページが表示されたり、TOPページへリダイレクトされるようであれば、あなたのサイトは何らかの対策が取られており、「ユーザー名」が他人に見えない状態になっていると思われます。
問題なのは画面が切り替り、投稿者アーカイブページが表示されてしまった場合です。アドレスバーの末尾にあなたのユーザー名が「/author/ログインユーザー名/」のような形で表示されていませんか? これが誰からもユーザー名が見えている状態ということです。
ですがご安心ください。もしもユーザー名が表示されていても、これから紹介する方法でそれを隠すことができます。またプラグインを用いれば、ユーザー名とは違う文字列を表示させ、ユーザー名を特定させないことも可能です。
ユーザー名がadminの場合、必ずユーザー名とニックネームを変更する
悪意のある攻撃者は、まずユーザー名をadminであると仮定して攻撃を仕掛けてくることが最も多いと言われています。そのため、これから紹介する方法でユーザー名を見えない状態にしたとしても、WordPressの定番ユーザー名であるadminをそのまま使っていては、いずれ唯一のキーであるパスワードが突破され、サイトを乗っ取られてしまうかもしれません。
ここでは、プラグインを利用してユーザー名を変更する方法を紹介します。プラグインを増やしたくないという方もいるかと思いますが、このプラグインは設定後、削除が可能となっているので、それほど抵抗なく導入いただけると思います。
※動作確認はWordPressバージョン 4.8です。
01. Admin renamer extendedをインストール
まずは「プラグイン」→「新規追加」で、検索窓に「Admin renamer extended」と入力して、プラグインをインストールします。インストールが完了したら、必ず有効化してください。
02. Admin renamer extendedの設定
次に、「プラグイン」→「Admin renamer extended」で、設定画面を開きます。現在のログインユーザー名が表示されるはずです。このテキストフィールドの「admin」を別のユーザー名に設定して、「Update」ボタンを押します。これで、ユーザー名が変更されます。
03.ニックネームとブログ上の表示名を変更
ブログ上の表示名はデフォルトの状態の場合、ユーザー名が使用されていますが、これをニックネームが表示されるように変更します。当たり前の話になりますが、ニックネーム自体もユーザー名とは別の文字列に指定します(日本語可)。
これでユーザー名がサイトのインターフェース上に表示されないようになったはずです。
URLに「/?author=1」が入力されても、functionsの設定でユーザー名を特定させない方法【投稿者アーカイブページを使用しない場合(上級者向け)】
先ほどのセクションでユーザー名をadminから別の名前に変更しましたが、これだけではまだ不十分です。このままではまだ「/?author=1」を入力された場合や、投稿者アーカイブページへのリンクにユーザー名が含まれてしまっています。
ここでは、「/?author=1」を入力されたときに、ユーザー名を特定させないfunctionsの設定を紹介します。
※これから紹介する方法で投稿者アーカイブページを非表示すると、「/?author=1」と入力されてもユーザー名は特定されなくなります。ですが、投稿者アーカイブページへのリンクは、別途テーマ内のソースを修正しなければなりません。これはテーマによって削除方法が異なるので、ここでは解説できませんが、「テーマ名 + author + アーカイブ + 不要」などと検索すれば、対応方法を調べることができるかと思います。
// 投稿者アーカイブ非表示リダイレクト function author_archive_redirect() { if( is_author() ) { wp_redirect( home_url()); exit; } } add_action( 'template_redirect', 'author_archive_redirect' );
上記の指定をすることで、投稿者アーカイブページ自体を非表示にし、トップページへリダイレクトさせることでユーザー名を特定させないようにしています。
一人で投稿を管理している場合などは、そもそも投稿者アーカイブページが重複コンテンツとなる恐れもあり、不要だという場合が多いと思います。そういった場合は、この方法をお勧めします。
URLに「/?author=1」が入力されても、プラグインでユーザー名を特定させない方法【投稿者アーカイブページを使用する場合】
先ほどの例とは違い、こちらは複数のメンバーで投稿を管理していたりして、投稿者アーカイブページを使用したいという場合に向いています。ユーザー名を特定されないために今回利用するプラグインは「Edit Author Slug」です。
01.Edit Author Slugのインストール
まずは「プラグイン」→「新規追加」で、検索窓に「Edit Author Slug」と入力して、プラグインをインストールします。インストールが完了しましたら、必ず有効化してください。
02.Edit Author Slugの設定
次に、「ユーザー」→「あなたのプロフィール」で、設定画面を開きます。ページの最下部に「投稿者スラッグ」という欄が表示されているはずです。カスタム設定にカーソルを合わせて、ユーザー名以外の半角英数字を入力してください。
これで、投稿者アーカイブページのURLがユーザー名から、今設定した内容に変わったはずです。
さいごに
全WEBサイトの約3割がWordPressで作られたサイトであるというデータがあるように、WordPressの利用率は極端に高く、そのために悪意のある攻撃者に狙われやすくなっています。またWordPressはこの記事で説明している通り、デフォルトの状態では「ユーザー名」が誰からも「見える」状態になってしまっています。パスワードさえ突破できれば、管理画面に侵入できるため、他のCMSやWEBサイトに比べて、攻撃者に狙われやすいともいわれています。
こういったセキュリティにかかわる問題というのは、まだまだ軽視されることがあるように感じますが、サイトが奪われれば、ドメインが勝手に売却されたり、サイトのコンテンツがアダルトコンテンツにすり替わったり、最悪の場合、二度と元のサイトに戻せなくなることもあるのです。
そうならないためにも、できる限りの対策をしていただきたいと思います。