ワードプレスがユーザーログインIDやID番号をJSONで出力する仕組みがついています。これは仕様ではありますがセキュリティー上ハッカーにサイトが狙われやすくなる可能性があります。


ワードプレスのユーザー情報のJSON出力機能

ワードプレスサイトに/wp-json/wp/v2/usersや/wp-json/wp/v2/users/1のようなURLでアクセスするとJSONというデータ方式でユーザーのログインIDとデータベース上のIDが出力されます。
(これはワードプレスの仕様です)

http://ワードプレスのURL/wp-json/wp/v2/users

ユーザーJSONデータ出力の危険性

ワードプレスが出力するこのユーザーデータには、ユーザーのログインIDも含むため、外部から機械的に何百ものサイトからIDを取得することが可能となってしまう機能です。このIDからブルートフォースアタックという攻撃を受けやすくなることが考えられます。

※ブルートフォースアタックとは
管理画面のログインをよく使われるパスワードの辞書を使い機械的に数十万回繰り返して管理者権限を奪取します。

(ワードプレスはユーザーIDを隠さないCMSではあり、パスワードが十分強力な場合はIDが漏れても管理者権限を破られることはありません。)

また、

http://ワードプレスのURL/wp-json/wp/v2/users/ユーザーID番号

と指定すると投稿が1つ以上あるユーザーのログインID等の情報が取得できてしまいます
※投稿が一つもないユーザーの情報取得はブロックされます。

ユーザーのJSONデータ出力を止める

ワードプレスサイトで複数の投稿者が存在し、投稿を追加しているようなサイト様では、このJSONによるデータ出力を止めてしまう事をお勧めいたします。
(またユーザーのパスワードは12文字以上のランダムな文字列の英数記号を含むものにします)

テーマのFunction.phpに下記のコードを追加することでユーザーJSONデータ出力を止めることが可能です。

//json形式のユーザー情報生成を停止
add_filter('rest_endpoints', function( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P[\d]+)'] );
    }
    return $endpoints;
});

【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

WordPress ワードプレスのマルウェア駆除・セキュリティー対策のご依頼、ご相談はWPドクターまでお気軽にお送りください