X-Forwarded-For Inspect
HTTPヘッダー/経路情報をブラウザ内で整理・診断します。入力はサーバーへ送信しません。観測差分の一次切り分けに使えます。
状態
ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。
使い方
X-Forwarded-For(必要ならX-Real-IP)を貼り付けて「解析」。IP列と候補を一覧表示します(ヘッダー行/複数行貼り付け/ヘッダー全体の貼り付けOK)。
注意(このツール)
- 信頼境界を超えた値は偽装され得ます。最終的な採用ルールはプロキシ構成に合わせて決めてください。
このページについて
何をするツール?
X-Forwarded-For のIPリストを分解し、先頭/末尾の意味を整理して表示します。X-Real-IP もあれば併せて表示します。
「どれが本当のクライアントIP?」という実務の混乱を整理するためのツールです。
X-Forwarded-For の基本
- X-Forwarded-For は非標準ですが広く使われる転送ヘッダーです。
- IPがカンマ区切りで並びます(多段プロキシで増える)。
- 先頭が「元のクライアント」に近いことが多いが、信頼境界次第で解釈が変わります。
構文(読み方)
X-Forwarded-For は「IP, IP, IP」の形で並びます。スペースが混ざることもあります。
- X-Forwarded-For: 203.0.113.1
- X-Forwarded-For: 203.0.113.1, 198.51.100.2
- X-Forwarded-For: 203.0.113.1, 198.51.100.2, 10.0.0.10
どのIPを採用する?(現実的な考え方)
結論は「信頼できるプロキシの範囲を決めて、その外側のIPだけを採用する」です。X-Forwarded-For の見た目だけで決めると偽装に弱くなります。
- 信頼できる最終プロキシ(LB/CDN)だけが X-Forwarded-For を付与/上書きする運用にする
- アプリは「信頼できるプロキシの数/範囲」を設定し、そこから外側のIPを採用する
- private/loopback が混じる場合は、内部ホップか設定ミスの可能性があるため要注意
用語(このページの前提)
- Client IP: 実際の利用者に近いIP(ただし信頼境界内で判断)。
- Proxy chain: 中間者の並び。X-Forwarded-For が長くなる原因。
- Trust boundary: 信頼できるプロキシの範囲。ここを超えた値は信用できない。
なぜ役立つ?(実務での混乱を解く)
X-Forwarded-For は「誰が追加したか」に依存します。正しい解釈には、信頼できるプロキシの範囲を明確にすることが重要です。
- 左端が常にクライアントとは限らない(偽装可能)
- 右端が常に自社の最終プロキシとは限らない(経路差/設定差)
X-Real-IP との関係
X-Real-IP は単一のIPを持つことが多く、X-Forwarded-For の先頭と一致する設計が多いです。どちらを信頼するかはプロキシ構成次第です。
よくある落とし穴
- アプリがヘッダーをそのまま信じてIP制限をしてしまう(偽装で突破)
- 信頼境界の設定ミスで「プロキシのIP」がクライアント扱いになる
- ローカル/プライベートIPが混ざる(10.x / 192.168.x など)
セキュリティ注意点(信頼境界)
X-Forwarded-For はクライアントが偽装できます。信頼できるプロキシで上書き・検証した値だけを使用してください。
トラブル別チェックリスト
- IP制限が突破される: XFFを信じすぎている可能性。信頼境界の外の値を採用していないか確認
- 常に同じIPになる: 最終プロキシのIPを見ている/上書きされている/アプリの信頼設定が不足を疑う
- プライベートIPが出る: 内部経路の露出/誤設定の可能性。どこで付与されているか調査
確認のしかた(実測)
X-Forwarded-For は通常リクエスト側なので、ブラウザのDevToolsやサーバーログで確認するのが確実です。
- DevTools → Network → Request Headers で X-Forwarded-For / X-Real-IP を確認(見えない場合は中間者のみ付与の可能性)
- アプリ/プロキシのアクセスログで「採用したクライアントIP」とヘッダー値を突き合わせる
- Forwarded も併せて確認(Forwarded Inspect)して矛盾がないか見る
切り分け手順(おすすめ)
- Request Headers Parser で X-Forwarded-For / X-Real-IP を抽出
- このツールでIP列を分解して順序を確認
- Forwarded ヘッダーと整合が取れているか確認
関連ツール
- Forwarded Inspect
- Via Inspect
- Request Headers Parser
- What is my IP
このツールでできること
- X-Forwarded-For のIP列を分解して一覧表示
- X-Real-IP を併せて表示
- ヘッダー全体から X-Forwarded-For / X-Real-IP を抽出
注意(運用)
- 中継機器でヘッダーが書き換わることがあります。取得地点を揃えて比較してください。
- 最終判断はサーバーログと設定(信頼プロキシ、ルーティング)で確認してください。
参照仕様
- RFC 9110(HTTP Semantics)
- MDN: X-Forwarded-For
FAQ
どのIPをクライアントとして採用すべき?
信頼できるプロキシの範囲を定義したうえで、その外側の最左(または最初の未信頼)IPを採用するのが一般的です。
X-Real-IP と X-Forwarded-For が違う
中間者の付与順やポリシー差で不一致が起こります。信頼境界を明確にして採用ルールを決める必要があります。
参考リンク
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- X-Forwarded-Proto Inspect — X-Forwarded-Proto / Host を解析して外形URL判定を確認
- Forwarded Inspect — Forwarded を解析して転送経路情報を確認
- Via Inspect — Via を解析して経由プロキシ経路を確認