
先日、Twitterで以下のような記事を見つけました。
みんな、ログインID隠せてないです。
— 上林賢司@Genussmittel (@SymbiosisServer) November 23, 2018
「https://ドメイン/?author=1」って入力して
「https://ドメイン/author/ID」というように
あなたのIDが出るようなら、超危険な状態です。
連休中かもしれないけど11月20日から攻撃が激しくなってるので、本当に気をつけて。
これは、自分のサイトのURLの後ろに「/?author=1」をつけてアクセスすると、そのサイトのログインIDやプロフィール写真などが表示されるというものです。
実はこのサイトでも、特に対策をしていなかったので、ログインIDや僕のプロフィール写真などが簡単に表示できてしまう状態にありました。(2018年11月25日に対応済みです。)
僕は一応、顔出し無しでこのサイトを運営していますし、ワードプレスのログインIDがわかってしまうと、他の人に乗っ取られてしまう可能性がありますよね。
そこで、今回は「?author=1」を入力してもワードプレスのログインIDやプロフィール写真が表示されないようにするにはどうすれば良いか紹介します。
対応方法
対応方法はプラグインや.httの変更などありますが、今回、僕が実施したのはfunction.phpの修正です。
プラグインの導入が一番手っ取り早いように思いますが、プラグインを入れすぎるとサイトのスピードに影響する恐れもあるため、function.phpをいじることにしました。
それでは、実際の手順を紹介します。
手順1:管理画面からテーマの編集を開く
WordPressの管理画面を開いたら、メニュー欄から「外観」-「テーマを編集」を選びます。
すると、テーマ編集画面が開くので、右のメニューから、「テーマのための関数(function.php)」を選びます。
手順2:function.phpにコードを追記
function.phpの画面が開けたら、以下のコードを追記します。
// ?author=1 対策
function author_archive_redirect() {
if( is_author() ) {
wp_redirect( home_url());
exit;
}
}
add_action( 'template_redirect', 'author_archive_redirect' );
以上で作業は完了です。
最後に
今回はWordpressのログインIDが漏洩しないようにセキュリティを強化する方法を紹介しました。
せっかく大切に育てたブログが他の人によって壊されたり、データを盗まれたりしないようにしっかりとセキュリティを強化しておきましょう。