X-Forwarded-Forヘッダーのルール

@iwasaki 61views 更新:2017年3月22日

ELBなどを経由してApacheでリモートIPを取得する場合、そのままだとELBのIPアドレスになってしまうため、X-Forwarded-Forヘッダーの値を使うのが定石かと思います。

多段プロキシの場合にはX-Forwarded-Forヘッダーのルールは以下のようになります。

リクエストが複数のプロキシを通過する場合、X-Forwarded-For リクエストヘッダー内の clientIPAddress の後に、リクエストがロードバランサーに達するまでにリクエストが通過したすべてのプロキシの IP アドレスが順に記載されます。したがって、右端の IP アドレスは最新のプロキシの IP アドレスで、左端の IP アドレスは発信元クライアントの IP アドレスです。このような場合、X-Forwarded-For リクエストヘッダーは次の形式になります。

X-Forwarded-For: OriginatingClientIPAddress, proxy1-IPAddress, proxy2-IPAddress

http://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/x-forwarded-headers.html

ELB経由の場合、上記例の「proxy2-IPAddress」がELBのIPアドレスになります。リモートIPを取得する場合、上記例だと「proxy1-IPAddress」を取得するようにするのがよいようです。

参考

http://sfujiwara.hatenablog.com/entry/2016/01/26/175350

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません