ログイン情報のユーザー名漏洩対策

ログイン情報のユーザー名漏洩対策

今回は、WordPressのセキュリティについてです。

早速ですが、実はWordPressのログイン情報であるユーザ名は簡単に特定できてしまう方法が2つあります。

1つ目がサイトのホームURLの後ろに「/?author=」を追加してアクセスする方法です。
例えば、「https://sample.com」といったURLのサイトの場合、「https://sample.com/?author=1」
となります。アクセスすると、画面上にログイン情報で使用しているユーザー情報が確認できると思います。

対策方法

function.phpに以下のソースコードを追加することで対策が可能です。


function theme_slug_redirect_author_archive() {
    if (is_author() ) {
        wp_redirect( home_url());
        exit;
    }
}
add_action( 'template_redirect', 'theme_slug_redirect_author_archive' );

2つ目がサイトのホームURLの後ろに「サイトのURL/wp-json/wp/v2/users」や「サイトのURL/?rest_route=/wp/v2/users」
のアドレスでアクセスすると、json形式のユーザーデータが表示されます。

対策方法(REST API 編)

function.phpに以下のソースコードを追加することで対策が可能です。


function my_filter_rest_endpoints( $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;
}
add_filter( 'rest_endpoints', 'my_filter_rest_endpoints', 10, 1 );

まとめ

今回はユーザー情報漏えい対策について書きました。
ここでは、functions.phpに関数を追加して対策する方法をご紹介しましたが
プラグインのSiteGuard WP Pluginでも一部対策できるみたいです。
私もこの機会にセキュリティについて一度考え直してみようと思います。

SNSシェア

WP TECH WordPress技術専門 Tips

コーポレートサイトへ

WP TECH WordPress技術専門 Tips

採用サイトへ