WordPressのユーザー名を分らなくする方法
Category
WordPress
WordPressでは「ユーザー名を変更しましょう(推測されにくいものにしましょう)」というのは、以前からよく聞く話ですよね。
以前の古いバージョンでは、「ユーザー名がインストール時にはadminになっているので、新しいユーザーを作成しましょう」とか、「authorタグを使う時には、ニックネームをブログ上に表示させましょう」とか。
でも、意外とWordPress使いの方でも、ある方法で簡単にユーザー名が分ってしまうということが知られていないようです。
私もWordPress使いの1人ですので、個人的にも、また、サイト制作案件にも使ってたりしますので、今回はこの辺りを記事にしてみようと思います。
Keyword:総当たり攻撃(ブルートフォースアタック)対策
WordPressのユーザー名は意外と簡単に分ってしまう
WordPressで作られたサイトのドメインの後に「/?author=1 」と入力してみてください。
投稿者アーカイブページが表示されます(※当サイトでは表示されなくしています)。
http://www.ドメイン/author/ユーザー名/となります。
「?author=1」の”1″は、初めに作成したユーザーIDで、1つの目のユーザーIDを削除したとしても404ページが表示されるだけで、この数字の箇所を「2.3.4…」と順に変えていくと、投稿者アーカイブページが表示されてしまうので、ユーザー名が分ってしまうことになります(※先程書いた「authorタグを使う時には、ニックネームをブログ上に表示させましょう」の設定にしても、投稿者アーカイブページのURLは変わってくれません)。
パスワードを複雑なものにしておけば、知り得たユーザー名から、ブルートフォースアタックを用いた総当たり攻撃でも簡単にはパスワードは割り出せませんが、「ログイン時に覚えられないので簡単なパスワードにしている」「4桁の数字にしている」のであれば、推測もし易く、ブルートフォースアタックでも比較的短時間で解読されてしまう場合もあります。
●ブルートフォースアタック(総当たり攻撃)とは?
暗証番号(パスワード)等で、ありうるパターンを全て入力して解読する暗号解読法です。コンピュータプログラムで自動化し、繰り返し行うことで暗証番号(パスワード)の読解を試みます。
参考サイト:ブルートフォースアタック -Password Depot-
WordPressのユーザー名を分らなくする方法
http://www.ドメイン/?author=idへのアクセスをリダイレクト
functions.php
// 投稿者アーカイブページへのアクセスを404ページへリダイレクト function author_archive_redirect() { if($_GET['author'] !== null) { wp_redirect( home_url('/404') ); exit; } } add_action('init', 'author_archive_redirect');
3行目で「author」というクエリがあれば実行します。
※リダイレクト時に無限ループに陥らないように”!== null”も書きましょう。
4行目で404ページ(404.php)へリダイレクトします。
ちなみに、WordPressで404.phpを用意していない場合、404.phpに以下を記述し、存在しないページはTOPページに遷移させることもできます。
404.php
// 存在しないページをTOPページにリダイレクト <?php header("location: http://www.ドメイン/"); exit; ?>
その他の設定も変更(確認)
authorタグを使っている場合
[ユーザー]→[プロフィール]より「ニックネーム」を入力し、「ブログ上の表示名をニックネーム」に変更しておきましょう。
※authorタグを使っていなくても、RSSにはユーザー名が表示されるので注意です。
今まで使っていたユーザー名を変更
今まで使っていたユーザー名は、バレてしまっている!?かもしれませんので、変更しちゃいましょう。
WordPressの管理画面を見てみると、「ユーザー名は変更できません」となっていますが、データベースのSQLを変更すると簡単です。
「SQLを変更ってよく分らないし、面倒くさい…」という方は以下をお試しください。
1.WP-DBManagerプラグインをインストール
2.最新のデータベースをバックアップ
3.そのデータベースファイル(拡張子が.sqlのファイル)をダウンロード
4.秀丸なんかの文字コードや改行コードがきちんと認識されるテキストエディタで開く
5.以下のソースを参考に3箇所を編集(ファイル名_-_DB名.sql)
6.編集したsqlファイルをFTPでアップロード
※デフォルト状態だと/wp-content/backup-db内にアップロード
7.WP-DBManager上で”6″でアップロードしたsqlファイルに復元
ファイル名_-_DB名.sql
// 修正箇所1 username~ユーザー名 // 修正箇所2・3 INSERT INTO `wp_users` VALUES~ユーザー名~ユーザー名
既存のユーザー名で検索すると、3箇所がヒットします。
「username」の直ぐ後に1箇所、「INSERT INTO `wp_users` VALUES」の直ぐ後に2箇所出てきますので、全て変更します。
他の方法も紹介
[プラグインで変更]
Edit Author Slugプラグインで投稿者アーカイブページのユーザー名を変更する。
投稿者アーカイブページのユーザー名を変更した後、Admin renamer extendedプラグインで既存のユーザー名を変更する。
[フィルターフックを使って投稿者アーカイブを作らなくする]
Gatespace’s Blogさんのブログ記事がとても参考になります。
※パーマリンクの更新が必要なようです
今回、私が紹介したやり方は、極力手間をかけたくないので、私がよくやっている方法を紹介しました(プラグインのアップデートとか面倒なので…)。
いろんな方法があるようですので、お好みな方法で試してみてください。
関連記事(※当記事と関連性が高いと思われる記事)
WordPress 3.3.1
2012/01/04WordPressで管理画面の表示を変更する
2011/12/22WordPressでCSSやJavascriptをページ毎に振り分ける
2011/12/29WordPress 3.4
2012/06/18WordPressの検索表示をカスタマイズする
2012/03/11おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)