WordPressのログインユーザー名は丸見え!?

WordPressのセキュリティ対策で必ずいわれるのが、ユーザー名を「admin以外に変更しよう」です。
たしかにadminというユーザー名は変える必要があるでしょう。
しかし、実はデフォルトの状態ではadminであってもなくても、さして労力をかけずにアカウントIDは分かってしまいます。総当たり攻撃といわれるブルートフォースアタックから守らなければならないのは「ユーザー名」と「パスワード」のふたつですが、そのうちユーザー名はいともたやすく突破されてしまうのです。

ニックネームは必ず変更する

基本的なことですが、管理者がコメント欄に入力を行った場合などにニックネーム(author)が表示されます。テーマによっては記事にも投稿者名として表示されますね。

表示テーマ:Twenty Twelve

表示テーマ:Twenty Twelve

また、ブラウジング状態でニックネームが表示されていなくてもソース内(body内HTMLタグなどのclass属性名)にニックネームが使われていることもあります。

このニックネームは管理画面の「ユーザー」→「プロフィール」で設定しますが、デフォルトではニックネーム=ユーザー名となってしまいます。

nickname

つまり、ニックネームを未定義の場合、すでにユーザー名を公表していることになります。
このことを認知していないユーザーが多いのか、WordPress構築サイトはニックネーム=アカウント名のものが意外に多いです。
最低でも任意のニックネームを設定して、ブログの表示名にこのニックネームを選択しましょう。

投稿者アーカイブからもユーザー名が分かる

WordPressでは投稿者アーカイブというものが作成されます。
ユーザー名がadminならば、https://seous.info/author/adminでアクセスできます。
投稿者アーカイブへのリンクを作らなければ、閲覧者に知られることはないのではと思われますが、実はサイトURLに?author=ユーザーIDを付けることでユーザー名の投稿者アーカイブにリダイレクトされます。

https://seous.info/?author=1でアクセスすると
https://seous.info/author/adminにリダイレクトされます。

?author=1の数字はユーザーIDになるわけですが、一番始めに作られるユーザーが1となり、アカウントがひとりの場合は通常は1です。
2つ目以降のユーザーはauthor=2となっていきますので、1から順番にアクセスしてみればよいということになります。(ちなみにこのサイトでは一度初期アカウントでログイン後、新規で作成し直しているので、author=2となっています)

ランダムにブルートフォースアタックを仕掛ける場合、ひと工程手間が掛ることになるので、ユーザー名の変更がまったくの無意味ということではないとは思いますが、その気になれば、速攻で見破られてしまいます。

投稿者アーカイブのURLを変更する

「Edit Author Slug」というプラグインを使うことで投稿者アーカイブのURLを変更することができます。

プラグインを追加して有効にすると前述の管理画面の「ユーザー」→「プロフィール」に下記のような設定が追加されます。

editauthorslug

Customの項目でauthor/の後ろのURLを任意に指定できます。
この例ではユーザー名adminに対して、下記のような投稿者アーカイブのURLとなります。

https://seous.info/author/D6zfpGN8yI7f7xRXH3n0

投稿者アーカイブにアクセスさせない

複数の投稿者で運営しているサイトであれば、投稿者アーカイブは有用な場合もあるかと思うのですが、ひとりで運営しているのであればアーカイブページと内容が重複することとなります。
こういった場合はそもそも投稿者アーカイブそのものが不要でしょう。
下記をfunctions.phpに下記を追記することで404を返すことができます。

※WordPressでのユーザー名の漏洩についての対策を書きましたが、ブルートフォースアタックに最も有効なのはやはり管理画面にIP制限を掛けることです。ホワイトリスト方式であれば、指定環境以外からは管理者画面にアクセスすることすらできません。


「WordPressのダッシュボードをブルートフォースアタックから守る」

フォローする

WordPressとはなにかもう一度おさらいしてみよう!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


六 × 5 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">