IP逆引き

WEBアクセスで取得できる情報一覧

PHP / Apache で取得できる「アクセスの痕跡」まとめ

WEBサーバーにアクセスがあると、サーバー側では $_SERVER などから さまざまな情報を取得できます。
ここでは「何が取れるのか」「どこまで信用できるのか」を、実用目線でまとめます。

結論(まず重要なこと)

取得できる情報一覧(代表)

情報 取得例(PHP) 何がわかる? 信頼性
アクセス元IP $_SERVER['REMOTE_ADDR'] アクセスしてきた端末(または出口)のIP 高(ただしCDN/プロキシ注意)
アクセス先URL $_SERVER['REQUEST_URI'] どのパスを狙ったか(攻撃パターンが出る)
HTTPメソッド $_SERVER['REQUEST_METHOD'] GET/POST/HEAD 等。Botや攻撃の特徴が出る
User-Agent $_SERVER['HTTP_USER_AGENT'] ブラウザ/OS/クローラ名 中(偽装できる)
Referer $_SERVER['HTTP_REFERER'] どこから来たか(検索/リンク元) 低〜中(空が多い)
Host $_SERVER['HTTP_HOST'] アクセスされたドメイン 中(Host攻撃に注意)
Accept-Language $_SERVER['HTTP_ACCEPT_LANGUAGE'] 端末の言語設定(国推定の補助) 中(偽装できる)
Accept $_SERVER['HTTP_ACCEPT'] 欲しいコンテンツ形式(HTML/JSONなど)
接続方式 $_SERVER['HTTPS'] httpsかどうか
接続ポート $_SERVER['SERVER_PORT'] 80/443など
リモートポート $_SERVER['REMOTE_PORT'] 相手側のポート(基本ランダム) 中(参考程度)
アクセス時刻 time() いつ来たか(ログの基本)

詳細解説(実用ポイント)

1) IPアドレス(REMOTE_ADDR)

サーバーが「接続してきた相手」として認識するIPです。
ログの基点になる最重要情報です。

2) リクエストURI(REQUEST_URI)

アクセスされたパス+クエリです。
攻撃者の意図が一番出るのがここです。

3) HTTPメソッド(REQUEST_METHOD)

GET が普通ですが、攻撃やスキャンでは POSTHEAD が増えます。
404監視(ハニーポッド)では特に重要です。

4) User-Agent(HTTP_USER_AGENT)

ブラウザやBotの名乗りです。偽装できます。
ただし偽装しても「癖」は出るので、判定材料としては超強いです。

5) Referer(HTTP_REFERER)

どこから来たかの情報です。
ただし「空」のケースが多いので、これだけで判断しない方が安全です。

6) Host(HTTP_HOST)

リクエストされたドメイン名です。
これは普通は自サイトのドメインですが、攻撃では変なHostが来ることがあります。

7) Accept-Language(HTTP_ACCEPT_LANGUAGE)

端末の言語設定です。
GeoIPが微妙な時の「補助材料」になります。

「取得できそうで取得できない」情報

実用メモ:ログに残すべき最小セット

あなたの404監視(Watch404)用途なら、最低でも以下を保存しておくと後で困りません。

まとめ

WEBアクセスで取得できる情報は「犯人特定」ではなく、
アクセスの特徴を掴むための材料です。
特に REQUEST_URI と User-Agent は、攻撃やBotの傾向を知るのに強力です。


目次