web-dev-qa-db-ja.com

ApacheでHTTPリクエスト全体をダンプする方法

ApacheでHTTPリクエスト全体をダンプすることは可能ですか?着信リクエストのすべてのHTTPヘッダーを追跡する必要があります。どうやってするか?

27
Alex

Apacheの代わりに必要なものは パケットアナライザー かもしれません。パケットスニファとも呼ばれます。最も人気のあるものはおそらく TCPDumpWireshark の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)を検討してください。

30
Kyle Brandt

おそらく cookies のダンプですか?それ以外の場合- mod_dumpio を参照してください。

12
pQd

基本的なパケットスニッフィングは、ngrepがtcpdumpとgrepのハイブリッドであると簡単です。特定のシナリオで、WebブラウザーがWebサーバーと通信する方法を確認し、HTTPヘッダーを検査する必要がある場合。
この例では、次のようなWebサーバーでngrepを実行します。

$ ngrep port 80

また、ポート80への「GET /」リクエストへのhttpリクエストをフィルタリングすることを選択できます。

$ ngrep -q '^GET .* HTTP/1.[01]'

クライアント側には、Tamper Dataという便利なツールがあります。これは、Firefox拡張機能であり、送信HTTP要求を表示、記録、さらには変更することもできます。
あなたはより多くの情報を見つけることができます ここ

8
Ali Mezgani

TcpdumpやWiresharkを使用する代わりに、tcpflowを使用してください。これはtcpdumpに代わるものですが、すべての接続の両側にファイルを作成するので、自分でストリームをデコードする必要はありません。

7
David Pashley

Apacheにはその機能が組み込まれています。 ログレベルtrace7またはtrace8に増やすだけです。

LogLevel trace8

これはlotのデータをダンプすることに注意してください。あなたは警告されました。

0
Wouter Verhelst