fr en

Logger les données d'une requête POST avec apache

Posted on 2017-02-13 in Trucs et astuces

D'après le manuel, une façon simple de logger le contenu d'une requête POST (a priori uniquement en développement pour débugger l'application, sinon la taille des logs de production va exploser et on risque de faire fuiter des informations) est d'utiliser le module dumpio, soit pour Apache 2.4 :

# On met les logs dans des fichiers à part pour faciliter la lecture.
CustomLog /var/log/httpd/website.log combined
ErrorLog /var/log/httpd/website.error.log

# On active les logs debug
LogLevel debug

# On active le module
DumpIOInput On
DumpIOOutput On
LogLevel dumpio:trace7

Malheureusement, je n'ai jamais réussi à le faire fonctionner. Heureusement, il y a un autre module qui permet de faire ça : mod_security. Il se configure comme suit :

# On active le module.
SecRuleEngine On
SecAuditEngine on
# On lui donne un fichier de log.
SecAuditLog /var/log/httpd/website-audit.log
# On l'autorise à accéder au corps des requêtes.
SecRequestBodyAccess on
SecAuditLogParts ABIFHZ

# On configure une action par défaut.
SecDefaultAction "nolog,noauditlog,allow,phase:2"

# On définit une règle qui nous permet de logger le contenu des requêtes POST
SecRule REQUEST_METHOD "^POST$" "chain,allow,phase:2,id:123"
SecRule REQUEST_URI ".*" "auditlog"

Source : https://www.technovelty.org/web/logging-post-requests-with-apache.html