WordPressのユーザー名が筒抜け?「/?author=1」の恐怖と3つの対策

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 を試してみる
  • 対策(プラグイン・コード・サーバー設定)を一つ選んで実行する

「自分のサイトは大丈夫」と思わず、まずは現状を確認することから始めてみてください。この記事が、あなたのサイトを守る一助となれば幸いです。


Comments

コメントを残す

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

CAPTCHA