「?author=ID」パラメーターでの作者ページアクセスを禁止する方法

公開日:2025(令和7)年11月29日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

サイトの維持や有用なページの紹介を目的として、このページには各所に広告を表示しています。多数の広告が表示され、閲覧しにくいところがあるかも知れませんが、ご協力いただけますようお願いいたします。

WordPressでは作者一覧ページが自動で生成されるようになっているのはご存じですね。

例えば本サイトであればこちらのページがそうです。

ではこれとは別にトップページのURLに「?author=ID」(IDの部分はユーザーID)を付けてアクセスすると、そのIDを持つユーザーが存在する場合に作者ページへ遷移されるのをご存じでしょうか?

本ページにたどり着いた方ならご存じかと思いますが、この作者ページにはユーザー名が含まれていますし、またWordPressインストール時に設定する最初の管理ユーザーのIDは1なので、「?author=1」へアクセスすれば、簡単に管理ユーザーのユーザー名が分かってしまいます(実際にこの手法でユーザー名を収集して不正ログインを試みる事例があるようです)。

これを防ぐには、最初に作成した管理ユーザーとは別の管理ユーザーを作って類推されにくくするのが妥当ではあるものの、ID番号が分からないほどのユーザーを作成して、そのうちの一人を管理ユーザーにするということをしない限り、ID=1.2.3….と当たっていけばすぐに判明してしまいますし、何より最初の管理ユーザーでたくさんのコンテンツを作成してしまっている場合には移行も大変ですから現実的ではありません。

参考:公開するページのユーザー権限を分けた運営方法など

そこで本ページでは、「?author=ID」でアクセスがあった場合にすべて404ページへ遷移させるためのコードを紹介します。

WordPress不正ログイン対策の一助になれば幸いです。

「?author=ID」パラメーターでの作者ページアクセスを404ページへ遷移させるコード

まずはコード追加前に自身のサイトでトップページ+「/?author=1」(1は実際の管理ユーザーのIDにしてください)でアクセスしてみてください。

もしもWordPress標準の動作通り、サイトのトップページ+「/author/ユーザー名」のページへ遷移されるようでしたら、以下のコードを有効化しているテーマのfunctions.phpへ追加します。

function pwcn_author_archive_id_parameter_access_to_404( $query ) {
	// 管理画面外(フロントエンド)かつメインクエリの場合のみ処理
	if ( ! is_admin() && $query->is_main_query() ) {
        
		// クエリ変数 'author' に値がセットされているかチェック
		// これは /?author=ID の形式のアクセスを捉えます
		if ( ! empty( $_GET['author'] ) ) {
			$author_id = absint( $_GET['author'] );
            
			if ( $author_id > 0 ) {
				// 1. クエリを「存在しないクエリ」として強制的に設定
				$query->set_404();
                
				// 2. /author/username/ へのリダイレクト処理(Canonical Redirection)を停止
				// IDからユーザー名へのリダイレクトを防ぐための最重要措置
				remove_action( 'template_redirect', 'redirect_canonical' );
                
					// 3. 404ヘッダーを設定し、テーマの404テンプレートをロードさせる
					status_header( 404 );
			}
		}
        
	}
}
add_action( 'pre_get_posts', 'pwcn_author_archive_id_parameter_access_to_404' );

追加したら、もう一度「/?author=1」へアクセスしてみてください。404ページが表示されれば機能の追加は完了です。

Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
公開するコンテンツは権限の低いユーザーで作成する(セキュリティ)