Möglichkeit zum Protokollieren von POST/GET-Parametern in Apache 2.2

Möglichkeit zum Protokollieren von POST/GET-Parametern in Apache 2.2

Ist es möglich, die Apache-Konfiguration irgendwie anzupassen, um POST-/GET-Parameter zu protokollieren?

Dies ist beispielsweise das, was derzeit protokolliert wird:

174.131.xx.xxx - - [30/Apr/2013:08:41:59 -0500] "POST /admin/bl_orderItem.php HTTP/1.1" 200 44

Ich möchte, dass so etwas in den Protokollen angezeigt wird:

174.131.xx.xxx - - [30/Apr/2013:08:41:59 -0500] "POST /admin/bl_orderItem.php?name=John&lastName=Rambo&zip=12331 HTTP/1.1" 200 44

Danke für alle Vorschläge.

Antwort1

In einem benutzerdefinierten Protokollformat enthält %r (erste Zeile der Anfrage) die GET-Parameter. Verwenden Sie für nur die GET-Parameter %q (Abfragezeichenfolge (vorangestellt mit einem ?, wenn eine Abfragezeichenfolge vorhanden ist, andernfalls eine leere Zeichenfolge)).

Sehenhttp://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats

Für die Postdaten müssen Sie mod_dumpio verwenden.

Sehenhttp://httpd.apache.org/docs/2.4/mod/mod_dumpio.html

Antwort2

Sie können sich hierzu auch das Modul mod_security ansehen. Es ist wirklich großartig darin, alle Parameter (ein- und ausgehend) zu protokollieren.

Antwort3

Sie können PHP verwenden:

https://stackoverflow.com/questions/3718307/php-script-to-log-the-raw-data-of-post

<?php
file_put_contents("post.log",print_r($_POST,true));
?>

verwandte Informationen