WordPress Tips

WordPress ユーザー一覧の表示と対策

2020-03-03

本記事にはプロモーションが含まれています。

WordPress ユーザー一覧の表示と対策

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

WordPressのユーザーは簡単に調べられます。

WordPressユーザーの一覧を見る方法

WPのURL/?author=1

アクセスすると、/archives/author/ユーザ名にリダイレクトされ、ユーザー名がすぐにわかります。

WP REST APIはデフォルトで有効になっているので、以下の方法でも確認できます。

WPのURL/wp-json/wp/v2/users

ユーザー一覧の表示対策

WordPressでユーザ名がわかってしまうのはセキュリティの観点からも良しとされていないです。(この辺の理由は他のサイトで述べられています)

これを対策するプラグインとして有名なのは

ですね。それ以外にもWordPressのセキュリティ関連のプラグインを入れていればユーザー一覧対策はされている場合もあり。


All In One WP Security には
/?author = 1でユーザー情報を取得するのを防止する対策があります。

Miscellaneous > Users Enumeration

Disable Users Enumeration にチェックをいれます。

プラグインに頼らないでやりたい場合は、
functions.php
.htaccess
に設定する方法があります。

functions.phpに記述する

if (!is_admin()) {
// default URL format
if (preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING'])) die();
add_filter('redirect_canonical', 'shapeSpace_check_enum', 10, 2);
}
function shapeSpace_check_enum($redirect, $request) {
// permalink URL format
if (preg_match('/\?author=([0-9]*)(\/*)/i', $request)) die();
else return $redirect;
}

/?author=1等のアクセスをdie()で終了させています

.htaccessに記述する方法

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* http://example.com/? [L,R=302]
</IfModule>

こちらは/?author=1のアクセスをexample.comへリダイレクトする方法です。

http://example.comの部分は適宜変更します。

参考にさせていただいたサイト:

WordPress Username Enumeration Techniques and How to Fix Them

【バレてOK!】WordPressのユーザー名は99%変更不要

  • この記事を書いた人
  • 最新記事

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

-WordPress Tips
-