【セキュリティ対策】WPのユーザー名の漏洩を防ぐ方法
2021/2/22
2021/10/5
4758 views
WPユーザー名セキュリティ
WordPressにログインするには「ユーザー名」と「パスワード」が必要です。
ログインに必要な重要項目なので、厳重に秘密しているでしょうが、実は、ユーザー名の方はだだ漏れなんです。
ユーザー名が確認できてしまう方法が2つもある
簡単にユーザー名が取得できる方法があります。
あなたのワードプレスサイトのドメインの後ろに、「/?author=1」を付けてアクセスしてみてください。
すると、URLかタイトルかページ内のどこかユーザー名が表示されてしまったかと思います。
https://ドメイン名/?author=1
また、もうひとつ取得できてしまう方法があります。
以下のようにドメインの後ろに/wp-json/wp/v2/usersを入力してください。
https://ドメイン名/wp-json/wp/v2/users
表示例
これでもユーザー名が露呈したはずです。
これは、WordPress 4.4以降から導入されたwp-jsonからREST APIというウェブの情報を共有できる仕組みを利用しているためです。
つまり、ワードプレスサイトのユーザーIDはとても簡単に取得されてしまうのです。
もちろんパスワードは閲覧できないためログインはできませんが、セキュリティ保護の観点からは非常に脆弱になりますし、ユーザー名から社員の名前などを取得されるなどプライバシーの保護にもリスクがあります。
対策方法
上記の2つの場合のそれぞれの対策を解説します。
両方行ってください。
1. 1つ目の場合の対策方法
まず、上記の1つ目の「https://ドメイン名/?author=1」でユーザー名が露呈してしまうことの対策方法ですが、function.phpに以下の記述をすることで404.phpへ飛ばすことができます。
functuin.php
/* @ サイトのURL/?author=1でのユーザー名の漏洩を防止
----------------------------------------------------------------------------- */
function disable_author_archive() {
if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
wp_redirect( home_url('/404.php') );
exit;
}
}
add_action('init', 'disable_author_archive');
2. 2つ目の場合の対策方法
次は2つめの、REST APIを利用した「https://ドメイン名/wp-json/wp/v2/users」で露呈してしまう対策ですが、WordPressプラグインの「XO Security」を使用する方法を解説します。
※ちなみに、「Disable WP REST API」という同様のプラグインもありますがなぜか効きませんでした
XO Securityの使い方
「プラグイン」から「XO Security」をインストールし、有効化します。
「設定」>「XO Security」へ進みます。
REST APIのタブを選択し、「REST API の無効化」にチェックを入れます。
「/wp/v2」の項目(親)にチェックを入れます。
以上で完了です。
REST APIをすべて無効にするとContact Form7などが動作しなくなるため注意ください。
まとめ
以上、ワードプレスユーザー名の漏洩を防ぐ方法の解説でした。
パスワードを強固なものにするのはもちろ、ユーザー名も守ることでより一層セキュリティを強化することができます。
この記事へのコメント
- まだ書き込みはありません