【WordPress】必ずやるべきセキュリティ対策!ログインユーザー名の特定を防ぐ
2019年9月11日
WordPress
この記事のURLとタイトルをコピーする
今回は、WordPressのセキュリティのお話です。
多くの方が運用しているWordPress。
実はログイン情報であるユーザー名は、誰でも特定できてしまうのではご存知でしょうか?
WordPressの標準設定では、第三者からユーザー名が丸見えの状態です。
パスワードは様々なツールで解析することができるので、万が一悪意のある他人に標的とされてしまった場合、運用しているサイトが乗っ取られてしまう可能性もあります。
今回はユーザー名の特定方法と、その対策方法の備忘録です。
「author」とは、投稿者のアーカイブページのこと。
アーカイブページを表示することで、ユーザー名の特定をすることができます。
一度、自分のサイトで確認してみましょう。
当サイトだと「https://otamunote.com/?author=1」です。
TOPページへリダイレクトされれば、そのサイトは既に対策がされている状態です。
第三者にユーザー名を特定されることはないので安心して大丈夫でしょう。
もし投稿者のアーカイブページが表示され、URLが「/author/ログインユーザー名/」と切り替わった場合、第三者にユーザー名が見えている状態です。
もし404エラーになった場合、「/?author=1」の最後の数字を順に増やしてみてください。
WordPewssに登録している、全ユーザーの投稿者アーカイブページを見ることができます。
テーマ内にあるfunction.phpを直接編集するので、必ずバックアップをとってから行いましょう。
以下のコードを、function.phpに追加します。
ファイルをアップ後、再度「/?author=1」でアクセスし、TOPページにリダイレクトされれば完了です。
「REST API」とは、WordPressのサイトのコンテンツを簡単に取得できるAPIです。
こちらもまた、標準でサイト情報が簡単に取得できるような状態になっています。
その確認方法と対策について確認しましょう。
当サイトだと「https://otamunote.com/wp-json/wp/v2/users」です。
アクセスをすると、画面に英数字の文字列が表示されます。
これがAPIで取得したデータです。
中身を確認すると、「link:」と「slug:」の項目があります。
この2項目で、ユーザー名を特定することできます。
もし上記の項目が表示されず、文頭に「code:rest_no_route」とある場合、そのサイトは既に対策をされている状態です。
第三者にユーザー名を特定されることはないので安心して大丈夫でしょう。
テーマ内にあるfunction.phpを直接編集するので、必ずバックアップをとってから行いましょう。
以下のコードを、function.phpに追加します。
ファイルをアップ後、再度「/wp-json/wp/v2/users」でアクセスします。
文頭に「code:rest_no_route」と表示されれば完了です。
悪意のある方だとユーザー名/パスワードの特定をし、運用しているサイトにアタックしてくる可能性もあります。
直接コードに触れることに不安があれば、プラグインで設定する方法もあります。
(今回はプラグインでの方法は割愛します…。)
WordPressを運用する際は、ユーザー名が特定されないように、必ず何かしらの対策をしておくと安心でしょう。
多くの方が運用しているWordPress。
実はログイン情報であるユーザー名は、誰でも特定できてしまうのではご存知でしょうか?
WordPressの標準設定では、第三者からユーザー名が丸見えの状態です。
パスワードは様々なツールで解析することができるので、万が一悪意のある他人に標的とされてしまった場合、運用しているサイトが乗っ取られてしまう可能性もあります。
今回はユーザー名の特定方法と、その対策方法の備忘録です。
もくじ
ユーザー名の特定を防ぐ方法(author情報 編)
「第三者にユーザー名が特定される状況」と言われても、初めは何とも信じがたいですよね。「author」とは、投稿者のアーカイブページのこと。
アーカイブページを表示することで、ユーザー名の特定をすることができます。
一度、自分のサイトで確認してみましょう。
author情報でユーザー名を特定する
確認したいサイトURLの後ろに「/?author=1」をつけてアクセスをします。当サイトだと「https://otamunote.com/?author=1」です。
TOPページへリダイレクトされれば、そのサイトは既に対策がされている状態です。
第三者にユーザー名を特定されることはないので安心して大丈夫でしょう。
もし投稿者のアーカイブページが表示され、URLが「/author/ログインユーザー名/」と切り替わった場合、第三者にユーザー名が見えている状態です。
もし404エラーになった場合、「/?author=1」の最後の数字を順に増やしてみてください。
WordPewssに登録している、全ユーザーの投稿者アーカイブページを見ることができます。
対策方法
ユーザー名を特定されないために対策をします。テーマ内にあるfunction.phpを直接編集するので、必ずバックアップをとってから行いましょう。
以下のコードを、function.phpに追加します。
1 2 3 4 5 6 7 |
function theme_slug_redirect_author_archive() { if (is_author() ) { wp_redirect( home_url()); exit; } } add_action( 'template_redirect', 'theme_slug_redirect_author_archive' ); |
ユーザー名の特定を防ぐ方法(REST API 編)
WordPress4.7以降から本格的に導入された「REST API」。「REST API」とは、WordPressのサイトのコンテンツを簡単に取得できるAPIです。
こちらもまた、標準でサイト情報が簡単に取得できるような状態になっています。
その確認方法と対策について確認しましょう。
REST APIでユーザー名を確認
サイトのURLの後ろに「/wp-json/wp/v2/users」をつけてアクセスします。当サイトだと「https://otamunote.com/wp-json/wp/v2/users」です。
アクセスをすると、画面に英数字の文字列が表示されます。
これがAPIで取得したデータです。
中身を確認すると、「link:」と「slug:」の項目があります。
- link:
- author情報で表示されたURL
「/author/ログインユーザー名/」
- slug:
- ログインユーザー名
もし上記の項目が表示されず、文頭に「code:rest_no_route」とある場合、そのサイトは既に対策をされている状態です。
第三者にユーザー名を特定されることはないので安心して大丈夫でしょう。
対策方法
ユーザー名を特定されないために対策をします。テーマ内にあるfunction.phpを直接編集するので、必ずバックアップをとってから行いましょう。
以下のコードを、function.phpに追加します。
1 2 3 4 5 6 7 8 9 10 |
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 ); |
文頭に「code:rest_no_route」と表示されれば完了です。
さいごに
author情報とREST APIは、標準設定で簡単にユーザー情報を確認することができます。悪意のある方だとユーザー名/パスワードの特定をし、運用しているサイトにアタックしてくる可能性もあります。
直接コードに触れることに不安があれば、プラグインで設定する方法もあります。
(今回はプラグインでの方法は割愛します…。)
WordPressを運用する際は、ユーザー名が特定されないように、必ず何かしらの対策をしておくと安心でしょう。
この記事のURLとタイトルをコピーする