WordPress セキュリティ対策 投稿者アーカイブを無効化

ソフトウエア

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

何故かWordPressのログインアカウントがバレてブルートフォース攻撃を受ける?

この疑問に回答します。

不正ログインを防ぐプラグインのアクセスログを見ると、ページには表示させていないのに何故かログインアカウントでアタックされている。これはWordPress が自動生成する投稿者毎に投稿をまとめる機能が有効になっているからです。攻撃者はこの機能を利用して不正ログインを試みます。

WordPress セキュリティ対策:投稿者アーカイブってなに?

投稿者アーカイブとは

投稿者アーカイブとは、WordPress が自動生成する投稿者ごとの投稿をまとめる機能のことです。

次のURLに引数を与えてアクセスすると、自動的に投稿者名のアドレスにリダイレクトされます。

https://[サイトのURL]/?author=1
   ↓
https://[サイトのURL]/author/[ログインアカウント]

つまり、ログインアカウント名が公開されていることになり不正ログインを試みるには大きな手掛かりになります。あとはパスワードさえ突破すれば不正ログインに成功です。

ブルートフォースアタック(総当たり攻撃)という攻撃手法を用いて、手あたり次第パスワードを利用してログインを試みます。簡単なパスワード「1111」「1234」「password」などはあっという間にログインされます。

 補足情報 

行末の「1」はログインアカウントのIDです。カテゴリID、記事IDとかと同じものでアカウントにもIDを持っています。複数のユーザーを利用している場合は、2,3と続いて行きます。

投稿者アーカイブの無効化

投稿者アーカイブは複数の方法で無効化することができます。「functions.php」を利用すると簡単に無効化することができますので今回は、「functions.php」を用いた無効化を紹介します。

WordPress セキュリティ対策:functions.php を使用する方法

関数を追加します。

投稿者アーカイブのページにアクセスしたら404ページにリダイレクトさせます。

add_filter( 'author_rewrite_rules', '__return_empty_array' );
   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');

これで、投稿者アーカイブが無効化されます。

 

 

以上、「WordPress セキュリティ対策 投稿者アーカイブを無効化」という記事でした。