ApacheでHTTPリクエスト全体をダンプすることは可能ですか?着信リクエストのすべてのHTTPヘッダーを追跡する必要があります。どうやってするか?
Apacheの代わりに必要なものは パケットアナライザー かもしれません。パケットスニファとも呼ばれます。最も人気のあるものはおそらく TCPDump と Wireshark の2つです。どちらも無料で、Windowsおよび* nixオペレーティングシステム用のバージョンがあります。これらは、Apacheが見ているものだけでなく、インターフェースに着信するすべてのトラフィックを示します。ただし、フィルターを使用して、httpの80などの指定したポートに制限できます。
tcpdump:
サーバーから次のコマンドを実行すると、ポート80宛てのすべてのパケットが表示されます。
Sudo tcpdump -s 0 -X 'tcp dst port 80'
大文字のXスイッチは、ペイロードを16進数とASCIIでダンプします。 sスイッチに0を指定すると、パケット全体が取得されます。 「tcp dst port 80」は、tcpヘッダーのポート80宛てのパケットのみをフィルタリングして表示することを意味します。
Wireshark:
よりユーザーフレンドリーなバージョンの場合、GUIを実行している場合は、wireshark(旧称Ethereal)を検討してください。
おそらく cookies のダンプですか?それ以外の場合- mod_dumpio を参照してください。
基本的なパケットスニッフィングは、ngrepがtcpdumpとgrepのハイブリッドであると簡単です。特定のシナリオで、WebブラウザーがWebサーバーと通信する方法を確認し、HTTPヘッダーを検査する必要がある場合。
この例では、次のようなWebサーバーでngrepを実行します。
$ ngrep port 80
また、ポート80への「GET /」リクエストへのhttpリクエストをフィルタリングすることを選択できます。
$ ngrep -q '^GET .* HTTP/1.[01]'
クライアント側には、Tamper Dataという便利なツールがあります。これは、Firefox拡張機能であり、送信HTTP要求を表示、記録、さらには変更することもできます。
あなたはより多くの情報を見つけることができます ここ
TcpdumpやWiresharkを使用する代わりに、tcpflowを使用してください。これはtcpdumpに代わるものですが、すべての接続の両側にファイルを作成するので、自分でストリームをデコードする必要はありません。
Apacheにはその機能が組み込まれています。 ログレベル をtrace7
またはtrace8
に増やすだけです。
LogLevel trace8
これはlotのデータをダンプすることに注意してください。あなたは警告されました。