【WordPress】乗っ取り対策!今すぐできる不正ログイン防止策

スポンサーリンク

「WordPressサイトが乗っ取られる」そんなニュースを耳にしたことはありませんか?
特にログインページは攻撃者の標的になりやすい部分です。本記事では、簡単にできる2つの対策方法を解説します。

ログインページの保護とユーザー名の非公開化

この記事では、WordPressサイトを不正アクセスから守るための2つの対策をご紹介します。

不正アクセスから守るための2つの対策
  • 攻撃者が管理画面にアクセスできないよう、デフォルトのログインページURLを変更する。
  • サイト訪問者や攻撃者がユーザー名を特定できないようにする。

これらのセキュリティ対策を導入することで、WordPressサイトの安全性を大幅に向上させることが可能です。

対策1:ログインページのURLを変更する

WordPressの初期設定では、ログインページのURLが公開されているのと変わりません。このままだと不正アクセスのリスクが高まります。
WPS Hide Loginというプラグインを使えば、ログインページのURLを簡単に変更できます。

  • STEP 1

    WordPress管理画面で「設定 > WPS Hide Login」を選択します。

  • STEP 2

    ログインURL」に新しいログインページのURLを入力します。
    リダイレクトURL」に、初期設定のログインページや管理画面にアクセスされた場合のリダイレクト先のURLを入力します。

  • STEP 3

    設定を保存します。

注意

ログインページのURLを忘れないよう、安全な場所にメモしておきましょう!

対策2:ユーザー名(ログインID)を隠す

WordPressの仕様では、以下の方法でユーザー名が確認されてしまいます。

初期状態で可能なユーザー名確認方法
  • サイトのURL末尾に「/?author=1」をつける
  • サイトのURL末尾に「/wp-json/wp/v2/users」をつける

これを防ぐには、テーマの「functions.php」ファイルに以下のコードを追加します。

//author pageを非表示
function disable_author_archive_query() {
    // 管理画面ではない場合のみ実行
    if ( !is_admin() && preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING']) ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action('init', 'disable_author_archive_query');

//WP REST APIによってユーザ名が公開されるのをブロック
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 );
ポイント
  • 「?author=1」のアクセスをトップページにリダイレクトします。
  • WP REST APIでのユーザー名の表示を無効化します。

これにより、不正ログインリスクを大幅に軽減できます。

おわりに

WordPressサイトのセキュリティは、管理者の努力次第で強化できます。
今回紹介した対策を早速実施して、安全なサイト運営を目指しましょう!

参考

コメント

タイトルとURLをコピーしました