Word Pressのセキュリティ対策「ログインユーザーID(アカウント名)を隠し乗っ取りを防ぐ方法」

ライフハック

WordPressを使い始めのとき、Google アナリティクスで自サイトを解析していると、作っていないページになぜかアクセスをされた形跡がある…こんな経験はないでしょうか。
これ、非常にセキュリティが脆弱になっておりWordPressアカウント名(ユーザーID)がばれている状態です。
ログインユーザーIDがそのまま「公開」状態にあると攻撃や乗っ取り対象になることもあります。
こちらではWordPressログインユーザーIDを隠し乗っ取りを防ぐ方法をお伝えします。

WordPressのログインユーザーID(アカウント名)を隠し乗っ取りを防ぐ方法

WordPressでは、利用するテーマによってはユーザーIDがそのまま投稿者名として表示されることがあります。
そこからユーザー名が判明し、悪意ある人たちが攻撃対象とし、パスワードを解析して乗っ取りなどの害を加えてきます。

ユーザー名からパスワードを解析した後はサイトにログイン、その後パスワードを変更されて、本来の持ち主が全く使えない事態になります。

もしこれが超人気サイトのブログであればその被害は甚大、丸まる乗っ取られてしまいブログの収益などが根こそぎ止まってしまいます。新規で始めたばかりならユーザーログイン名の追加などでかまいませんが、すでにコンテンツがいくつかある方にとっては死活問題です。
まずは落ち着いて情報が漏洩されている状態かチェックしましょう。

自サイトのURLにドメイン名が出ていないか確認

WordPressでは投稿者ごとに投稿者アーカイブが作成されるようになっています。

http://あなたのドメイン名/?author=1
or
https://あなたのドメイン名/?author=1

そのため上記のように入力しアクセスすると、ログイン名(ユーザーID)が閲覧者に見えてしまったり、WP REST APIがデフォルトで有効のため、認証しなくても外部からユーザー情報が取得することができてしまいます。
上記のURLを入力した場合、何も対策されていないサイトはURL欄にユーザー名がこのように表示されてしまいます。

http://あなたのドメイン名/author/あなたのサイトのアカウント
or
https://あなたのドメイン名/author/あなたのサイトのアカウント

こうなっていたら、だれにでもURLからユーザーIDがわかる状態になっています。すこしWordPressを触ったことのある相手なら「ああ、この人はPCに明るくないな、セキュリティ突破は容易だな」とばれてしまい格好の標的になってしまいます。
URLが上記の状態になっていたらすぐに対策を練りましょう。

Authorアーカイブページを無効にしトップページにリダイレクトさせよう「ifだけでなくelseifも追加がおすすめ」

「あなたのドメイン名(サイトURL)/?author=1」などでAuthorアーカイブページにアクセスがあった時、トップページにリダイレクトする設定をします。
プラグインもあるのですが、プラグインが多くなるとサイトが重くなる原因になります。functions.phpで対処できるものしてしまいましょう。

他のサイトで紹介されている対策は下記のifの中だけですが、elseifも追加するのもおすすめです。

functions.phpに下記を追記していきます。

// 投稿者ページリダイレクト
function author_redirect() {
if( is_author() ) {
wp_redirect( home_url());
exit;
}
elseif ( ($_SERVER[‘REQUEST_URI’] != ‘/404.php’) && is_404() ) {
wp_redirect( home_url());
exit;
}
}
add_action( ‘template_redirect’, ‘author_redirect’ );

404はアクセスしたURLにページが存在しない場合に表示されるものです。elseifで「ページがありません」と表示されるのではなく、そのままトップページに移動した処理となります。

こちらの処理をすると、Authorアーカイブページにアクセスされた場合トップページにリダイレクトするようになります。

トップページにリダイレクトしてほしくない場合

また、利用者によってはトップページにリダイレクトしてほしくないという方もおられると思います。その場合は、

「wp_redirect( home_url());」の代わりに

「wp_redirect( home_url(‘/404.php’));」

と打ち込み、別のページで「アクセスしたページがありません」と表示させる処理をすることが可能です。

新規追加でログインユーザー名を変更「初心者はまずこれ」

functions.phpとかよくわからない…という方や日の浅い初心者の方は一番最初にログインユーザーIDの変更をしておきましょう。
WordPressのダッシュボード画面から、「ユーザー」→「新規作成」をして下記の画面になりましたら、ピンクの枠の4か所を記入してください。
メールアドレスは既存のアカウントと同一のものは使えませんので新しいアドレスを入力してください。

一つ注意していただきたいのは、セキュリティの観点からブログ上の表示名と同一のユーザー名を付けることは避けるべきです。
全く関係のないジャンルも違いそうな名前にして予測できないようにしてください。
パスワードも複雑なものにし、誕生日や名前など自分のプロフィールに関わるものは絶対に避けてください。

ログインユーザーIDの新規追加が終わり、自分好みのテーマの設定がおわったら落ち着いてプラグインやfunctions.phpの追加を覚えていきましょう。

コメント

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