ワードプレスはユーザーID=ログインIDを基本的には隠さないCMSです。この為サイトに不正なログインを試みようとするハッカーはパスワードさえわかればログインできてしまうという事になります。ワードプレスの管理者権限のIDを完全に隠す方法を解説いたします。
この記事の目次
ワードプレスのユーザーIDが表示(もしくはHTMLコードに含まれてしまう)同線は3つ
ワードプレスのユーザーIDがハッカーにより機械的に、もしくは目視等によって取得できてしまう同線は下記の3つとなります。
1 各投稿の表示ページ上に投稿者としてユーザーIDが出力される
2 author=番号 というクエリをURLに付与した際の投稿者ページ
3 JSONデータ出力経由 wp-json/wp/v2/users/番号 ?rest_route=/wp/v2/users 等のクエリ をサイトURLに付与した時のJSONデータ出力
※そのほか一部プラグイン(Yoast SEO)でユーザーIDを出力してしまうものがあります。
それぞれについてユーザーIDを隠す方法を解説していきます。
1 各投稿の表示ページ上にユーザーIDが出力される問題の解決
こちらは最も簡単な解決方法は、ユーザーのプロフィール編集ページで、ニックネームと表示名をログインIDとは別のものを指定することです。
ワードプレスは自動的に投稿者の記事を一覧表示するページを生成します。投稿者と管理者が同じ場合、このページから管理者のユーザーID=ログインIDが露見します。
HTACCESSファイルに下記の記載を追加いただくとauthorページを強制的に表示しないようにできます。
※HTACCESSファイルはサーバーに設置される設定ファイルで、FTPソフトウェアによってワードプレスのサーバーにアクセスして書き換えることができます
RewriteEngine On RewriteCond %{REQUEST_URI} !^/wp-admin [NC] RewriteCond %{QUERY_STRING} author=\d RewriteRule ^ /? [L,R=301]
3 JSONデータ出力
下記のコードをテーマのfunctions.phpに記載いただくことで、ワードプレスのユーザー関連情報の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; });
※2,3の対策は
【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]
で簡単に行う事ができますのでよろしければご利用ください。
ワードプレスのユーザーIDが露見するのは危険?
ハッカーは総当たり攻撃でログイン施行を繰り返して管理者権限の奪取を試みます。ワードプレスのユーザーIDが露見しても、パスワードが十分強力な場合この総当たり攻撃は成功することはありませんので、ワードプレスのユーザーIDが露見しているからと言って危険であるという事はございません。
ユーザーのパスワードが脆弱であることこそが最もセキュリティー上危険と言えます。
下記のようなパスワードをご利用の場合は、早めに14文字以上の無意味な文字列かつ英数字記号を一つ以上含むパスワードに変更いただくことをお勧めいたします。
危険なパスワードの特徴
1 6文字以下
2 意味のある単語
4 意味のある単語+短い数列
5 管理者IDを含むパスワード
6 英字もしくは数字のみのパスワード
7 キーボードの並び順に法則があるパスワード(qwerty等)
8 意味のある単語の一部を数字にしたもの(passw0rd等)
9 著名人の名前
10 同じ文字が並ぶパスワード
ご参考になりましたら幸いです。
WordPress ワードプレスのマルウェア駆除・セキュリティ0対策のご依頼ご相談はお気軽にWPドクターまでお送りください