IP Geo Block 3.0.7にアップデートでログインできない時の対処法

IP Geo Block 3.0.7にアップデートでログインできない時の対処法

コメント投稿、管理領域、プラグイン領域、テーマ領域などをスパムコメントやゼロデイ攻撃、悪意あるアクセスから守ってくれる便利なWordPressプラグイン 「IP Geo Block」をIP Geo Block 3.0.7にアップデートすると「Sorry, your request cannot be accepted.」と表示され、ログインフォームへのアクセスをブロック、ログインできないという事象が発生。IP Geo Block 3.0.7によるログインブロックの対処法の備忘録。

IP Geo Block 3.0.7.1がリリースされて対応は不要になった模様。作者様に感謝です。

いきなり「Sorry, your request cannot be accepted.」と突然ログインブロック

Sorry, your request cannot be accepted.
Sorry, your request cannot be accepted.

さて新しい投稿でもするかとWordPressログインフォームにアクセスすると「Sorry, your request cannot be accepted.」と表示され「戻る」リンクをクリックすると前のページに戻されてWordPressにログインできない。

「まさか乗っ取りか?」とサイトのフロントエンドにアクセスすると別段変った様子もなく昨日までと同じ様子のサイトが表示される。別の管理サイトのWordPressログインフォームにアクセスするとまたもや「Sorry, your request cannot be accepted.」とログインブロック。サイト自体は普通にアクセスでき普通に表示される。

ちょっとパニックって最近ログイン関係のセキュリティでいじったfunctions.phpを元にもどして(何でもWordPressの問題はfunctions.phpが原因だと思っている私)、再度ログインフォームにアクセスするとやっぱりログインできない。

さらに最近ログインしていなかったサイト(ブログ)のログインフォームにアクセスするといつもの様にログインフォームが表示されログインできる。

この辺りで少し冷静になってきて「この3つのWordPressサイトの違いはなんだ?」と考えると、「ログインしてプラグインを更新したか更新してないか」の違いだなと気づく。この3つのサイトは同じテーマでほとんど同じプラグインをインストールしている。

まずは「Sorry, your request cannot be accepted.」でG先生にお聞きすると英語のページがずらり、中に日本語のページがあり、「IP Geo Block」の文字がある。そういえばIP Geo Blockを更新したなとここで気づき、IP Geo Blockのプラグインページへいって、IP Geo BlockのSupportに「When you were blocked after upgrading to 3.0.7」というIP Geo Blockの作者の方のトピを発見。

IP Geo Blockの作者の方は日本の方のようだが、このトピは英語。まあIP Geo Blockは世界中にユーザーがいるグローバルに人気のWordPressプラグインだから英語なのは仕方ないことだ。IP Geo Blockがファイヤーウォールプラグインとして人気なのは、Akismetという重いプラグインに世界のみなさんはあきあきしている現われなのかもなあ。

IP Geo Block 3.0.7 アップデート後のログインブロック対処手順

前置きが長くなったが、IP Geo Block 3.0.7に更新でおきるログインフォームへのアクセス制限、ログインブロックの対処方法について。まあ、IP Geo BlockのSupportの「When you were blocked after upgrading to 3.0.7」を読めば、英語が大の苦手である私にもできたので、誰でもできるだろう。

IP Geo Block プラグインフォルダの名前変更

IP Geo Block プラグインフォルダの名前変更
IP Geo Block プラグインフォルダの名前変更

IP Geo Block プラグインフォルダ( /wp-content/plugins/ip-geo-block/)の名前をFTPなど使ってip-geo-blockからip-geo-block-などに変更、WordPressログインフォームから通常どおりログインできるはずなのでログインしてIP Geo Blockを停止(無効)にする。

ip-geo-block.phpのEmergent Functionality部分のコードを編集

ip-geo-block.php
ip-geo-block.php

ip-geo-block-フォルダの中のip-geo-block.phpをFTPなどでダウンロード、テキストエディターなどでip-geo-block.phpのコードの下の方にある”Emergent Functionality”部分を書き換えてFTPなどで再度ip-geo-block-に戻す。

Emergent Functionality部分書き換え前

Emergent Functionality部分書き換え前(オリジナル)
Emergent Functionality部分書き換え前(オリジナル)

ip-geo-block.phpのEmergent Functionality部分書き換え前をTeraPad(テキストエディター)で開いたのが上の画像。110行目に注目。先頭が/*になっていて117行目の*/で囲まれた部分のコードが緑色になっていてコメントアウトされている。

実際のip-geo-block.phpのEmergent Functionality部分書き換え前

/*----------------------------------------------------------------------------*
 * Emergent Functionality
 *----------------------------------------------------------------------------*/

/**
 * Invalidate blocking behavior in case yourself is locked out.
 *
 * How to use: Activate the following code and upload this file via FTP.
 */
/* -- ADD `/` TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- *
function ip_geo_block_emergency( $validate ) {
	$validate['result'] = 'passed';
	return $validate;
}
add_filter( 'ip-geo-block-login', 'ip_geo_block_emergency', 1, 2 );
add_filter( 'ip-geo-block-admin', 'ip_geo_block_emergency', 1, 2 );
// */

Emergent Functionality部分書き換え後

Emergent Functionality部分書き換え後(編集後)
Emergent Functionality部分書き換え後(編集後)

ip-geo-block.phpのEmergent Functionality部分書き換え後をTeraPad(テキストエディター)で開いたのが上の画像。110行目に注目。先頭が//*になっていて111行目から116行目までのPHPコードがコメントアウト解除されている。

実際のip-geo-block.phpのEmergent Functionality部分書き換え後

/*----------------------------------------------------------------------------*
 * Emergent Functionality
 *----------------------------------------------------------------------------*/

/**
 * Invalidate blocking behavior in case yourself is locked out.
 *
 * How to use: Activate the following code and upload this file via FTP.
 */
//* -- ADD `/` TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- *
function ip_geo_block_emergency( $validate ) {
	$validate['result'] = 'passed';
	return $validate;
}
add_filter( 'ip-geo-block-login', 'ip_geo_block_emergency', 1, 2 );
add_filter( 'ip-geo-block-admin', 'ip_geo_block_emergency', 1, 2 );
// */

Emergent Functionality部分書き換え後のip-geo-block.phpをアップロード

Emergent Functionality部分書き換え後のip-geo-block.phpをリネームしたIP Geo Block プラグインフォルダip-geo-block-に戻す。

IP Geo Block プラグインフォルダをip-geo-blockに戻す

IP Geo Block プラグインフォルダをip-geo-blockに戻す
IP Geo Block プラグインフォルダをip-geo-blockに戻す

変更済みのip-geo-block.phpip-geo-block-に戻したら、IP Geo Block プラグインフォルダip-geo-block-から元のオリジナルのIP Geo Block プラグインフォルダ名のip-geo-blockに再び名前変更する。

IP Geo Blockを有効化する

IP Geo Blockを有効化する
IP Geo Blockを有効化する

IP Geo Blockを有効化する。「プラグインファイルが存在しません」やダッシュボード上部にメッセージが表示されるかもしれないがかまわずにIP Geo Blockを有効化する。

国コード検索 ホワイトリスト国コードにJP,ZZと入力

国コード検索 ホワイトリスト国コードにJP,ZZと入力
国コード検索 ホワイトリスト国コードにJP,ZZと入力

IP Geo Blockを有効化後、IP Geo Block設定ページに行き、設定ページの一番上の検証ルールの設定のところでIPアドレスから国コードを検索する。あなたのIPアドレス/国コードのところが、IPアドレス/ZZ (Cache)のままなのが確認できる。

マッチング規則ホワイトリストにする。

国コードのホワイトリストを日本在住なら通常JPとだけ入力されていると思うが、JP,ZZというようにJPの後にカンマ(,)区切りでZZを付け加える。

一番下の方、「変更を保存」ボタンで設定を保存する。

ip-geo-block.phpファイルをオリジナルに戻す

Emergent Functionality部分書き換え前(オリジナル)
Emergent Functionality部分書き換え前(オリジナル)

「変更を保存」ができたらip-geo-block.phpファイルのEmergent Functionalityの部分を元のオリジナルの状態に戻す。

具体的にはEmergent FunctionalityのPHPコードをコメントアウトする。//*と変更した部分を、上の画像の110行目のように/をひとつ減らして/*にするだけ。

以上がIP Geo Block 3.0.7によるログインブロックの対処法、対処手順。