デフォルト設定(初期状態)のままのWordPressサイトでは、ユーザー名が漏えいしている可能性があります。そのまま放置していると、不正ログインのリスクが高まります。

そこで当記事では、見落としやすい3つのリスク(ログインページ、投稿者情報、REST API)と対策をご紹介します。

WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

デフォルト設定で漏れやすい情報

WordPressサイトはデフォルト設定のままだと、以下の情報を誰でも確認できます。セキュリティ的には好ましくない状態です。

  • ログインページの存在(/wp-login.php)
  • 投稿者ページのURL(/?author=1)
  • REST API経由で取得できるユーザー情報(/wp-json/wp/v2/users)

これらの情報は、漏えいしていることを見落としやすい部分でもあり、不正ログインやアクセスの入り口になり得ます。次のセクションで、確認方法と対策を詳しく解説します。

いずれもかんたんに対策できるのでご安心ください。

ログインページ(/wp-login.php)

デフォルト設定のWordPressでは、ログインページに誰でもアクセス可能です。

試しに、あなたのWordPressサイトのURLの末尾に「/wp-login.php」と書いてアクセスしてみてください。表示された場合は、ログインページが公開されていることになります。

リスク

悪意のあるユーザーは、このページに総当たり攻撃を仕掛け、ログイン情報を推測しようとしてきます。

ログインページが公開されていると、あらゆるパターンのユーザー名やパスワードを総当たりで試されるリスクがあるということです。

対策

対策 内容
ログインURLを変更する WPS Hide Login」などのプラグインで/wp-login.phpを別のURLに変更して、そもそもログインページを表示させない。
ログイン試行制限 Limit Login Attempts Reloaded」などのプラグインで、一定回数以上の失敗をブロックする。
2段階認証を導入 Google Authenticator」などのプラグインで、パスワードが破られてもアカウントを保護する。

一番上のログインURLを変更する対策がおすすめです。これだけで十分効果があります。

投稿者情報(/?author=1)

WordPressでは、「サイトのURL/?author=1」にアクセスすると、ユーザー名を確認できてしまいます。あなたのサイトでも確認してみてください。

リスク

ユーザー名が漏れていると、パスワードを総当たりすればいいだけなので、不正ログインのリスクが圧倒的に高まってしまいます。

対策

対策 内容
ユーザー名を隠す Edit Author Slug」などのプラグインで、投稿者ページのURLを変更してユーザー名を表示させない。
投稿者アーカイブを無効化 functions.phpにコードを追加して、/?author=1などのアクセスをリダイレクトまたは404にする。

初心者の方は、前者のプラグインがおすすめです。安全かつかんたんに対策できます。

REST APIのユーザー情報(/wp-json/wp/v2/users)

WordPressのREST APIを利用すると、ログインしていない状態でもユーザー情報を取得できてしまいます。

「あなたのサイトのURL/wp-json/wp/v2/users」にアクセスすると、文字や記号がずらっと並んで表示され、情報が公開されていることがわかります。

REST APIとは、サイトの情報を外部から取り出せる仕組みで、スマホやアプリからサイトを操作する際にも使われます。

リスク

REST API経由でユーザー情報が漏れていると、サイトに登録されているすべてのユーザー名が確認できてしまいます。これらを元に、パスワード総当たり攻撃や不正ログインを試される危険性があるわけです。

対策

REST API経由で取得できるユーザー情報を制限する機能は、多くのセキュリティ系プラグインに備わっています。次のプラグインを試してみてください。

もしあなたが中級者以上なら、functions.phpに下記を追加するだけでも対策できます。テーマファイルを直接編集せずに済むので、プラグイン(Code Snippets)を使うのがおすすめです。

add_filter( 'rest_endpoints', function( $endpoints ){
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    return $endpoints;
});

まとめ

デフォルト設定のWordPressサイトでは、ユーザー名が外部に公開されている上に、誰でもログインページにアクセスできます。

そのままでは不正ログインの標的にもなりやすいですが、対策はシンプルです。

  • ログインページ(/wp-login.php)のURLを変更したり、ログイン試行制限や二段階認証を導入する
  • 投稿者ページ(/?author=1)のユーザー名を隠したり、投稿者アーカイブを無効化する
  • REST API(/wp-json/wp/v2/users)で公開されているユーザー情報を制限する

それぞれプラグインでかんたんに対応できますし、中級者以上ならfunctions.phpやCode Snippetsを使って、細かく制御することも可能です。

少しの工夫で、WordPressデフォルト設定に潜むセキュリティリスクを大幅に減らせます。
ぜひ試してみてください。

魅力的なブログがつくれる
WordPressテーマ集
WordPressテーマ「PANDORA」
レイアウト自由自在なブログ・メディアを構築。
WordPressテーマ「NULL」
技術や知見をシェアする開発者ブログを構築。
WordPressテーマ「Muum」
デザイン・SEOともに最高峰のブログに。
WordPressテーマ「Cherie」
華やかなブログで集客できるテンプレート。