Official Documentation

国内専用EC向け 海外IPアクセスブロック
(決済・会員登録・管理画面保護)

Googlebot巡回(SEO順位)を100%維持しながら、海外IPからの不正注文・大量スパム会員登録、管理画面への不審アクセスを水際でピンポイント遮断するセキュリティプラグインの公式オンラインマニュアルです。

プラグインコード: SiteOverseasIpBlocker
対応バージョン: EC-CUBE 4.2.0 〜 4.3.x
PHP要件: PHP 8.1 〜 8.3
ライセンス: オーナーズストア
最終更新: 2026年9月

1. プラグイン概要・解決する課題

警察庁の統計によると、日本国内のECサイトやWebサーバーに向けられる不審アクセス・脆弱性スキャンの実に99%が海外発であることが明らかになっています。特に昨今では、海外IPや自動化ボットによる「不正注文・不正アクセス」「大量スパム会員登録」、管理画面へのブルートフォース攻撃が深刻な課題となっています。

⚠️ レンタルサーバー標準の「海外IP制限」が引き起こすSEO大災害
サーバー会社のコントロールパネルで提供されている「海外IPアクセス制限」を有効にすると、米国等から巡回してくるGooglebotやBingbotなどの検索エンジンスパイダーまで物理的に遮断されてしまいます。その結果、検索インデックスから商品ページが削除され、検索順位が暴落する致命的な損害(SEO災害)が発生します。

本プラグイン(SiteOverseasIpBlocker)は、この問題を根本から解決するために開発されました。

🛡️ 海外からの不正注文・スパム遮断
不審アクセスが集中する「ご注文手続き画面(/shopping)」や「会員登録(/entry)」のみをピンポイントで海外遮断し、店舗運営リスクを防止します。
🔍 Googlebot巡回を100%保護
Google公式の二重逆引き認証により、正規の検索クローラーを自動認識して無条件通過。SEO検索順位や流入売上を完全に守ります。
⚡ ゼロレイテンシー超高速判定
独自開発のHermitage GeoIP(固定10Byteバイナリ)を直収。外部API通信やメモリ負荷を一切発生させず、1ms未満で判定します。
👑 管理画面保護も標準搭載
管理画面(/admin)の海外遮断機能もオールインワンで内包。複数のプラグインを重複購入する必要はありません。

2. 動作要件・システム環境

本プラグインは、以下の環境において動作検証およびセキュリティ検証を実施しています。

項目 要件・対応仕様
EC-CUBE バージョン EC-CUBE 4.2.0 〜 4.3.x(4.2系・4.3系両対応)
PHP バージョン PHP 8.1 / PHP 8.2 / PHP 8.3
データベース MySQL 5.7 / 8.0 / PostgreSQL 10〜16
必要拡張モジュール PHP標準関数(fseek, pack, unpack)のみ。特殊なPECL拡張や外部モジュールは不要です。
プロキシ・CDN環境 Cloudflare(CF-Connecting-IP)、AWS ALB、リバースプロキシ(X-Forwarded-For)に完全対応。
⚠️ IPv6環境に関するご注意・動作仕様

本プラグインの超高速GeoIP判定エンジンは「IPv4アドレス専用」の設計となっております。
エックスサーバー、ConoHa、さくらのレンタルサーバなど、一般的なEC-CUBEホスティング環境(DNSのAレコードのみ設定されたIPv4環境)では、お客様がIPv6回線(v6プラス・IPoE等)をご利用の場合でも通信事業者(プロバイダ)側で自動的に国内IPv4へ変換されるため、通常通り正常に判定・通過いたします。

※以下の環境ではご注意ください:

  • WebサーバーのDNSにIPv6(AAAAレコード)を直接設定されている場合
  • Cloudflare等のCDN経由でIPv6アドレスが直接Webサーバーへ到達する環境

上記のようにサーバーへ直接IPv6アドレスで通信が到達する場合、日本国内からのアクセスであっても「国籍判定不可」としてブロック対象となります。Cloudflare等をご利用の際は、Cloudflare管理画面にて「Pseudo IPv4(疑似IPv4)」機能等の併用をご検討ください。

3. インストール・有効化手順

  1. 1

    プラグインの入手・インストール

    EC-CUBE管理画面の「オーナーズストア > プラグイン > プラグイン一覧」より本プラグインをインストールします。

  2. 2

    プラグインの有効化

    プラグイン一覧画面にて、本プラグインのトグルスイッチまたは「有効化」ボタンを押下します。

  3. 3

    初期設定の確認・保存

    左メニューの「設定 > システム設定 > 海外IPブロック設定」へ進み、店舗の運用ポリシーに合わせて設定を行い「保存」をクリックします。

💡 インストール直後の安全設計(デフォルトOFF)
管理者ご自身の誤遮断を防ぐため、インストール直後の「海外IPブロック有効化」はOFFになっています。管理画面の設定画面で動作を確認した上で有効化してください。

4. 管理画面の設定項目一覧

管理画面の「設定 > システム設定 > 海外IPブロック設定」で提供される設定パラメータの一覧です。

設定項目名 初期値 説明・設定のポイント
プラグインの有効化
isEnabled
OFF(無効) 海外IPブロック機能全体の有効/無効を切り替えます。
保護モード
protectionMode
決済・会員登録のみ
(推奨)
以下の3つのモードから選択できます:
  • 決済・会員登録のみ遮断(推奨): /shopping(ご注文画面)と /entry(新規会員登録)のみ海外遮断。商品ページやトップは全世界に公開されSEO順位を100%維持。
  • ショップ全体を遮断: フロントサイト全体(商品閲覧含む)への海外アクセスを403遮断。
  • 無効: フロント側の遮断を行いません。
管理画面の海外遮断
blockAdmin
ON(有効) 管理画面(/%eccube_admin_route%/)への海外IPアクセスを個別に遮断するか指定します。フロント側の保護モード設定に関わらず独立して機能します。
許可する国コード
allowedCountries
JP アクセスを許可する国コード(ISO 3166-1 alpha-2)をカンマ区切りで指定します(例: JP,US)。通常は日本国内限定(JP)のままで問題ありません。
検索クローラー通過
allowSearchBots
ON(有効) GooglebotやBingbotなどの検索エンジンクローラーを自動認証し、無条件で通過させる機能です。SEO維持のため常時ONを強く推奨します。
手動ホワイトリストIP
whitelistIps
空(未設定) 海外IPであってもアクセスを無条件許可したいIPアドレスまたはCIDR範囲を改行区切りで入力します(例: 203.0.113.10 または 198.51.100.0/24)。海外出張時や外部連携サーバーの登録に利用します。
手動ブラックリストIP
blacklistIps
空(未設定) 国判定に関わらず、特定IPからの接続を強制拒絶したい場合に入力します。
GeoIP自動更新
autoUpdate
ON(有効) GitHub Actionsにより日次配信される最新のIP割当バイナリへの自動追従設定です。

5. SEO保護(Googlebot通過判定)の仕組み

悪意あるボットが User-Agent: Googlebot と偽装してアクセスしてくる攻撃(UAスプーフィング)を防ぎつつ、本物のGooglebotのみを100%安全に通過させるため、本プラグインはGoogle公式が推奨する「Forward-Confirmed Reverse DNS(FCrDNS / 二重逆引き照合)」を採用しています。

✅ Googlebot 3重判定ステップ
  1. User-Agentの一次判定: リクエストのUser-Agentに「Googlebot」や「bingbot」が含まれるかを検知。
  2. Reverse DNS逆引き: 接続元IPをホ스트名に逆引き(例: crawl-66-249-66-1.googlebot.com)。ドメイン末尾が .googlebot.com または .google.com であることを検証。
  3. Forward DNS正引き照合: 取得したホスト名を再度IPアドレスに正引き解決し、元の接続元IPと完全に一致することを確認。

この検証結果はキャッシュ(APCuまたはファイルキャッシュ)に保存されるため、2回目以降の巡回アクセスでDNS問い合わせのオーバーヘッドは発生しません。

6. リアルタイム遮断ログ&IPシミュレーター

管理画面のタブメニューより、遮断実績の確認や任意のIPに対する判定テストが可能です。

リアルタイム遮断ログ

海外IPからのアクセスが遮断された際の日時、アクセス先URL(/shoppingや/adminなど)、接続元IP、国コード、ユーザーエージェントが一覧で記録されます。どの国からどのような攻撃が仕掛けられているかを視覚的に把握できます。

IP判定シミュレーター

調査したいIPアドレスを入力して「判定テスト」を実行することで、本プラグインがそのIPをどのように認識するか(国コード、許可/遮断判定、ホワイトリスト該当有無)を事前シミュレーションできます。

7. SSHコンソールコマンド

万が一の設定ミスや緊急時、サーバーのSSHターミナルから直接プラグインの状態確認・緊急解除が行えるSymfony Consoleコマンドを完備しています。

# 現在の稼働ステータスと設定内容を確認
$ bin/console site-overseas-ip-blocker:status

# プラグインの有効/無効を緊急トグル切替(即座にON/OFF)
$ bin/console site-overseas-ip-blocker:toggle

# 内蔵GeoIPバイナリデータを最新版に強制アップデート
$ bin/console site-overseas-ip-blocker:update-geoip

8. よくある質問・トラブルシューティング

Q. 海外出張先や海外拠点から管理画面にアクセスできなくなりました。

海外IPからの接続のため、正常に403遮断されています。あらかじめ出張先のIPを「手動ホワイトリスト」に登録しておくか、サーバーへSSH接続できる環境であれば bin/console site-overseas-ip-blocker:toggle で一時的に機能をOFFにしてください。

Q. CloudflareなどのCDNを導入していますが、正常に判定されますか?

はい、完全に対応しています。Cloudflareが付与する CF-Connecting-IP や一般的なプロキシの X-Forwarded-For ヘッダーから真のクライアントIPを自動抽出して厳格に判定します。

Q. Google Merchant CenterやFacebook広告の審査ボットが遮断されませんか?

推奨の「決済・会員登録のみ遮断」モードをご利用の場合、商品詳細ページやカート画面などは海外にも開放されているため、各種広告審査クローラーが商品ページを巡回する際に遮断される心配はございません。

Q. お客様がIPv6環境(v6プラス・IPoE等)を利用している場合でも正常にアクセスできますか?

はい、エックスサーバーやConoHa、さくらのレンタルサーバなど一般的なホスティング環境(DNSにAレコードのみ設定されたIPv4サーバー)であれば問題ございません。お客様のアクセス時にプロバイダ側で自動的に国内IPv4へ変換されてWebサーバーへ到達するため、通常通り正常に国内判定されて通過します。
ただし、WebサーバーのDNSにIPv6(AAAAレコード)を設定している場合や、Cloudflare等のCDN経由でIPv6が直接Webサーバーへ到達する場合は「国籍判定不可」となり遮断対象となるため、Cloudflareの「Pseudo IPv4(疑似IPv4)」機能等の併用をご検討ください。