web-dev-qa-db-ja.com

ログに記録する最良の方法POST Apacheのデータ?

パラメータ付きのGETリクエストの形式で、またはPOSTリクエスト(たとえば、標準のURLエンコード、&-separated POST data)。API呼び出しをログに記録して分析したい場合、Apacheログに記録されるため、GET要求は簡単になります。POSTを取得する簡単な方法はありますかApacheログのデータも同様ですか?

(もちろん、アプリケーションでPOSTデータを明示的に記録できますが、コードでそれを心配しないようにする構成レベルの方法が必要です。)

55
Kevin Weil

Apacheの mod_dumpio を使用します。明らかな理由に注意してください。

Mod_dumpio 最初のヌル文字でバイナリペイロードのロギングを停止する であることに注意してください。たとえば、gzipされたファイルのmultipart/form-dataアップロードでは、おそらくmod_dumpioで最初の数バイトしか表示されません。

また、Apacheは、httpd.confフォルダーに存在する場合でも、/modulesでこのモジュールに言及しない場合があることに注意してください。 LoadModuleを手動で追加するだけで正常に機能します。

38
Spider

しかし、答えるのは遅いです。このモジュールでできること: https://github.com/danghvu/mod_dumpost

13
w00d

mod_securityをインストールして、/etc/modsecurity/modsecurity.confに入れることができます。

SecRuleEngine On
SecAuditEngine On
SecAuditLog /var/log/Apache2/modsec_audit.log
SecRequestBodyAccess on
SecAuditLogParts ABIJDFHZ

正確な答えではありませんが、Apache自体でこれを行う方法を聞いたことはありません。拡張モジュールで可能になると思いますが、それが書かれているかどうかはわかりません。

1つの懸念は、POSTデータはかなり大きくなる可能性があり、ログに記録する量に何らかの制限を付けないと、しばらくするとディスク領域が不足する可能性があります。ハッカーがサーバーを混乱させる可能性のあるルート。

7
David Z

[ModSecurity][1]を使用してPOSTデータを表示できます。

Debian/Ubuntuにインストールします。

$ Sudo apt install libapache2-mod-security2

推奨される構成ファイルを使用します。

$ Sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Apacheをリロードします。

$ Sudo service Apache2 reload

これで、/var/log/Apache2/modsec_audit.logの下にデータが記録されます。

$ tail -f /var/log/Apache2/modsec_audit.log
--2222229-A--
[23/Nov/2017:11:36:35 +0000] 
--2222229-B--
POST / HTTP/1.1
Content-Type: application/json
User-Agent: curl
Host: example.com

--2222229-C--
{"test":"modsecurity"}
7
hg8

実際にアプリケーションでそれをします。もちろん、ロガーシステムにもよりますが、実行時に設定可能です。たとえば、Apache Log(log4j/cxx)を使用する場合、そのようなURL専用のロガーを構成し、実行時にXMLファイルから構成できます。

2
Assaf Lavie

組み込みのフォレンジックログ機能を使用することもできます。

0
Aeyoun

より簡単なオプションは、サーバーに到達する前にPOSTデータを記録することです。Webアプリケーションの場合、 Burp Proxy を使用し、HTTPとして使用するようにFirefoxを設定します/ Sプロキシを使用すると、データをリアルタイムで監視(およびマングル)できます。

ブラウザなしでAPIリクエストを行う場合、SoapUIは非常に便利で、同様の情報が表示される場合があります。 SoapUIをBurpを介して接続するように設定することもできると思います(ただの推測です)。

0
siliconrockstar