技術ブログ

【/?author=1】でログインIDがバレる!?Autherページを301リダイレクトする方法《WPセキュリティ》
2024.05.06

【/?author=1】でログインIDがバレる!?Autherページを301リダイレクトする方法《WPセキュリティ》

2024.05.06 12

意外と知られていないけど結構まずいセキュリティのおはなしです。

皆さんWordPressのブログ運営はしていますでしょうか!

私自身もこうしてWordPressを使用してサイト運営をしたり、WordPressテーマ開発のお仕事をさせて頂いております。

その中でも結構皆さん見落としがちなセキュリティ対策の一つの例をご紹介したいと思います!

さて皆さん、ご自身で運営されているサイトのurlに

/?author=1
または
/author/1

こちらのURLを打ち込んでページを開いてみて下さい!

当サイトだと、
https://webtechlab-jp.com/wpdir/?author=1
https://webtechlab-jp.com/wpdir/author/1

出来ましたか?

それでは、URLを見てみて下さい。

あなたの運営しているサイトのユーザーIDが表示されてしまっていたりしませんか?

やべ!!ってなりましたか?(笑)

ユーザーIDが表示されず、トップページや404ページなど他のページにリダイレクトされた人は大丈夫ですので安心して下さい。

ですが、ユーザーIDが表示されてしまっている人はやばいです。すぐに対処しましょう!かなり簡単ですので、焦らず対処しましょう。

対象方法は、functions.phpに以下の記述を追加するだけです。

//Authorアーカイブページをトップページにリダイレクト
function disable_author_archive()
{
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
    $wp_rewrite->author_base = '';
    $wp_rewrite->author_structure = '/';
    if (isset($_REQUEST['author']) && !empty($_REQUEST['author'])) {
        wp_redirect(esc_url(home_url('/')), 301);
        exit;
    }
    if (preg_match('#/author/.+#', $_SERVER['REQUEST_URI'])) {
        wp_redirect(esc_url(home_url('/')), 301);
        exit;
    }
}
add_action('init', 'disable_author_archive');

出来ましたでしょうか?

こちらのコードをfunctions.phpに記述するだけで、以下のURLをトップページにリダイレクトすることが出来ます。

xxx.com/author/1 xxx.com/author/username xxx.com/?author=1
xxx.com/?author=username

これであなたのユーザーIDがバレる心配はもうありませんね!

安心してブログ運営をして下さいね(^^)