Apache: log für POST Anfragen
Njna
- webserver
0 Der Martin
0 Tom1 Christoph Jeschke
0 Christoph Jeschke0 Tom0 Christoph Jeschke0 Tom
Hi,
auf meinem Entwicklungsserver würde ich gerne nicht nur mit den logs die GET requests nachvollziehen, sondern auch gerne die mit POST gesendeten Formular-Daten.
Also es soll nicht nur POST test.php dort zu finden sein, sondern test.php?post_parameter=...
Da ich annehme, dass das über die normalen Apache Logs nicht funktioniert, stelle ich gleich die nächste Frage. Womit lassen sich ALLE Anfragen inkl. übermittelter Parameter mitloggen? Wireshark/Ethereal mitlaufen zu lassen, wäre wohl doch etwas übertrieben...
Danke und schönen Sonntag
Hallo,
auf meinem Entwicklungsserver würde ich gerne nicht nur mit den logs die GET requests nachvollziehen, sondern auch gerne die mit POST gesendeten Formular-Daten.
Problem klar erkannt: Der Apache protokolliert bei POST-Requests nur die angefragte Ressource, nicht aber die übermittelten Daten.
Womit lassen sich ALLE Anfragen inkl. übermittelter Parameter mitloggen?
Mit einem transparenten, protokollierenden Proxy. Sowas wollte ich schon lange mal selber schreiben, weil's für Windows anscheinend Mangelware ist.
Wireshark/Ethereal mitlaufen zu lassen, wäre wohl doch etwas übertrieben...
Aber immerhin eine Möglichkeit, wenn die übrigen gegebenen Debugging-Möglichkeiten nicht mehr ausreichen. Wenn es nur um ein bestimmtes Script geht, kann man ja auch im Script selbst ein POST-Data-Logging einbauen.
Ciao,
Martin
Hello,
auf meinem Entwicklungsserver würde ich gerne nicht nur mit den logs die GET requests nachvollziehen, sondern auch gerne die mit POST gesendeten Formular-Daten.
Problem klar erkannt: Der Apache protokolliert bei POST-Requests nur die angefragte Ressource, nicht aber die übermittelten Daten.
Womit lassen sich ALLE Anfragen inkl. übermittelter Parameter mitloggen?
Mit einem transparenten, protokollierenden Proxy. Sowas wollte ich schon lange mal selber schreiben, weil's für Windows anscheinend Mangelware ist.
Mit einem Apache-Modul soll es auch gehen.
Ich habe das leider immer noch nicht ausprobiert :-(
[linki:http://httpd.apache.org/docs/2.2/mod/mod_dumpio.html]
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Guten Tag,
Aber immerhin eine Möglichkeit, wenn die übrigen gegebenen Debugging-Möglichkeiten nicht mehr ausreichen. Wenn es nur um ein bestimmtes Script geht, kann man ja auch im Script selbst ein POST-Data-Logging einbauen.
Man kann auch über auto_append_file in der php.ini ein PHP-Skript vor alle PHP-Skripte vorschalten, welches $_POST loggt.
Wenn ich mit PHP entwickle, habe ich jeweils ein Skript mit auto_append_file und auto_prepend_file eingebunden, welches verschiedene Werte ausgibt, darunter auch $_POST, $_GET, $_SERVER usw.
Gruß
Christoph Jeschke
Guten Tag,
Da ich annehme, dass das über die normalen Apache Logs nicht funktioniert, stelle ich gleich die nächste Frage. Womit lassen sich ALLE Anfragen inkl. übermittelter Parameter mitloggen? Wireshark/Ethereal mitlaufen zu lassen, wäre wohl doch etwas übertrieben...
mod_dumpio loggt wirklich alles, was der Apache sendet.
Gruß
Christoph Jeschke
Hello,
Da ich annehme, dass das über die normalen Apache Logs nicht funktioniert, stelle ich gleich die nächste Frage. Womit lassen sich ALLE Anfragen inkl. übermittelter Parameter mitloggen? Wireshark/Ethereal mitlaufen zu lassen, wäre wohl doch etwas übertrieben...
mod_dumpio loggt wirklich alles, was der Apache sendet.
Hast Du das Modul schon selber ausgetestet?
Was gibt es, außer der bald überfüllten HDD, zu bechten?
Bleibt der Gepatchte da nicht bald stehen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Guten Tag,
Hast Du das Modul schon selber ausgetestet?
Ja. So viel gibt es da gar nicht zu testen - gerade mal drei Direktiven nach 2.2.4, davor nur zwei.
Was gibt es, außer der bald überfüllten HDD, zu bechten?
Man muss das LogLevel noch auf debug setzen (vor 2.2.4), sonst loggt der Apache nicht mit dumpio. Steht zwar in der Dokumentation, wird aber gerne übersehen.
Bleibt der Gepatchte da nicht bald stehen?
Nein. Man sollte nur auf den verfügbaren Speicherplatz achten. Im Produktionseinsatz hat mod_dumpio auf jeden Fall nichst verloren - außer man hat wirklich viel Platz.
Im konkreten Fall sollte man nur DumpIOInput aktivieren, denn die POST-Daten sind auch nur im Input-IO enthalten. Das grenzt die Menge der erzeugten Daten schon deutlich ein.
Gruß
Christoph Jeschke
Hello,
Im konkreten Fall sollte man nur DumpIOInput aktivieren, denn die POST-Daten sind auch nur im Input-IO enthalten. Das grenzt die Menge der erzeugten Daten schon deutlich ein.
Sollte eigentlich ja auch genügen, um "böse Requests" zu identifizieren.
Die Geschichte mit autoprepend (und selten auch autoappend) macht sich immer gut, wenn man alte Scripte von register Globals auf Verwendung der superglobalen Arrays umstellen muss.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg