WordPressでサイトを運営している皆さん、自分のサイトのURLの末尾に /?author=1 と入力してエンターキーを押してみてください。
もし、画面が切り替わり、URLが /author/ユーザー名/ に変わってしまったら……。 残念ながら、あなたのサイトはログインID(ユーザー名)を世界中に公開してしまっている状態です。
なぜユーザー名がバレると危険なのか?
WordPressの管理画面にログインするには「ユーザー名」と「パスワード」の2つが必要です。 通常、攻撃者はこの両方を推測しなければなりませんが、上記の方法でユーザー名が特定されてしまうと、攻撃の難易度は半分に下がります。
あとはパスワードを総当たりで試す「ブルートフォースアタック」を仕掛けるだけ。これは泥棒に「家の鍵穴の形」を教えてしまっているようなものです。
ユーザー名流出を防ぐ3つの対策
このリスクを解消するために、以下の3つのいずれかの方法で対策を講じましょう。
1. プラグインで対策する(初心者向け)
コードを触るのが不安な方に最もおすすめの方法です。
- Edit Author Slug: ユーザー名とは別の「スラッグ(別名)」を設定できます。URLに表示される名前をログインIDとは無関係な文字列に変えることで、特定を阻止します。
- SiteGuard WP Plugin: 日本で人気のセキュリティプラグインです。「作成者アーカイブの無効化」という項目にチェックを入れるだけで、
/?author=1による閲覧をブロックできます。
2. functions.php に追記する(中級者向け)
プラグインを増やしたくない場合は、テーマの functions.php にコードを書き加えます。
注意: 作業前に必ずバックアップを取ってください。
PHP
// ユーザー名の漏洩対策(/?author=ID へのアクセスをリダイレクト)
if (!is_admin()) {
if (preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING'])) {
wp_redirect(home_url());
exit;
}
}
このコードを追記することで、著者アーカイブへのアクセスをトップページへ強制的にリダイレクトさせます。
3. .htaccess でブロックする(上級者向け)
サーバー上の .htaccess ファイルを編集し、システムレベルでアクセスを拒否する方法です。
コード スニペット
# ユーザー名特定URLへのアクセスを拒否
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} author=([0-9]*) [NC]
RewriteRule .* - [F]
</IfModule>
これを記述すると、/?author=1 と入力された際に「403 Forbidden(閲覧禁止)」を返し、サーバーへの負荷も最小限に抑えられます。
まとめ:セキュリティの基本は「情報を与えないこと」
WordPressは世界中で利用されているため、常に攻撃の標的となっています。
- ユーザー名は「公開するもの」ではなく「隠すべき機密情報」
- 今すぐ自分のサイトで
/?author=1を試してみる - 対策(プラグイン・コード・サーバー設定)を一つ選んで実行する
「自分のサイトは大丈夫」と思わず、まずは現状を確認することから始めてみてください。この記事が、あなたのサイトを守る一助となれば幸いです。

コメントを残す