wordpressの管理画面をhtaccessのip制限以外の方法で制御

ローカルネットワーク外からのwp-loginへのアクセスに404を返す

login_headアクションフック

先日、wordpressで意図して404エラーを返す方法という記事をエントリーした。実際に404エラーを返す利用例として、wordpressの管理画面にアクセスすると404エラーを返すという方法を考えてみた。

一般的な管理画面のアクセス制限の方法は、htaccessによるWebサーバレベルで制限を行う例が多いようです。今回の方法はwebサーバレベルではなく、wordpressレベル(アプリケーションレイヤー)での制御方法になります。

具体的には、wordpressのadd_actionで管理系の処理が開始された時点で制限を行う処理を挟み込む方法です。add_actionは以下のようにfunctions.phpに記述し、

add_action( ‘login_head’, ‘restrict’, 1 );

restrict関数を以下のように記述します。

function restrict(){
	if ( strpos(getenv("REMOTE_ADDR"), "192.168.0") !== false )
	{

	}
	
	else
	{
		header("HTTP/1.1 404 Not Found");
		include(get_query_template('404'));
		exit();
	}
}
add_action( 'login_head', 'restrict', 1 );

この設定を行うことでローカルエリアネットワーク内以外のアクセスは404エラーが返されます。ifの条件式によって柔軟に制御することができます。

login_head codex

参考
WordPressのwp-login.phpに対するDOS攻撃対策

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

wordpressの管理画面をhtaccessのip制限以外の方法で制御の記事にコメントを投稿

開発