apache module dumpio log post data

apache module dumpio log post data

Q. How do I log POST data submitted by our user registration form to a log file under Debian Linux Apache 2 Web Server?

A. You can use mod_security or mod_dumpio module under Apache web server to dump POST data.

有时候调试apache模块,或者tomcat的java web程序时会碰到java程序收到的信息跟客户端提交的数据不一致,或者想在服务器里记录客户端提交的数据,办法参考如下。

 

LoadModule dumpio_module modules/mod_dumpio.so
DumpIOInput On
DumpIOOutput On
#DumpIOLogLevel DEBUG # apache 2.2 version
LogLevel dumpio:trace7 # apache 2.4

重启服务器,apachectl restart,查看error log文件。看到如下内容表示配置成功。

[Mon Nov 02 22:23:23.058280 2015] [dumpio:trace7] [pid 21251] mod_dumpio.c(58): [client 220.181.32.114:443] mod_dumpio:  dumpio_out (data-HEAP): 757 bytes
[Mon Nov 02 22:23:23.058283 2015] [dumpio:trace7] [pid 21251] mod_dumpio.c(100): [client 220.181.32.114:443] mod_dumpio:  dumpio_out (data-HEAP): \x17\x03\x03\x02\xf0\xa00\xca\xb0a\nUyg\xdb\xd1\xfa\xe2\xf4/D\x1f/\x86\v\x930\xdfO\xbe$\xae\x1d\x15\xeb\xfbP\xd2M \xcd\xb0\x89\b\xcd:\xe2\x81\xbdz\xd8!\xac\xee\xb5\xb6\xaa\x92\x12=Y\x9e\xda\xc2G!<\x97\xf1\x99\xc0Q\xe5\xde\xba\xe5\xae\xe1wl\x03\xff"\xc5\x0fT\x82\xd3\xf0v\x9a\x8f\xb7\x94\xac\xfa\xce)\xf8\xddL\xecBo\xf2]\xec\xd4\xb3L\x1a@\xdbP\r9o\xe9\x05j_\x89\xc8\xe7k>\xb2?L2\xed[\x85)\xe0\xc5z\x93[\xf9f\xdc\xe3>u\xbc\xe4_\xb9\xe5\xe0\xbf\xea\x0c\xe9}\xf1\xed\x83\xae\xf9\xe0\x18\xc8\x93\x04O\xd8H[\xc2\x81\xc9fg\xa7\xe3\x85\xf9\xdaO\x16+S\x90\xfdw5\xb9@uw\xcb\x95 _\xa2\x9d\x97;~'\xf46,\x96\xab-\x97\xa1\xadJ\xf5J\xc4\xb7\xe3\x04\x82t\xb787#\x01n\xf4\xa1\xaf\x953\xcb\x9d"G\xc6\x13\xa3\xd0\xc8\x944\x11\xb5\xac"\t\x1c\xabM~\x98\xd67\x0e\xe8\xcfT\xb6\x02*H;)
[Mon Nov 02 22:23:23.058293 2015] [dumpio:trace7] [pid 21251] mod_dumpio.c(164): [client 220.181.32.114:443] mod_dumpio: dumpio_out
[Mon Nov 02 22:23:23.058313 2015] [dumpio:trace7] [pid 21251] mod_dumpio.c(58): [client 220.181.32.114:443] mod_dumpio:  dumpio_out (metadata-FLUSH): 0 bytes
[Mon Nov 02 22:23:23.058340 2015] [dumpio:trace7] [pid 21251] mod_dumpio.c(135): [client 192.168.1.101:54889] mod_dumpio: dumpio_in [readbytes-nonblocking] 8192 readbytes

上面的日志内容过多,而且是经过16进制编码,读起来费劲。可以把没用的部分先过滤掉,把\x部分替换为%,把结果 放到http://webtools.kimnote.com/里,
用对应的解码方案解码,就可以看到原文了。

其他查看apache post内容方案:

  1. 使用定制模块
    1. https://github.com/danghvu/mod_dumpost
  2. 使用tcpdump查看原始数据。sudo /usr/sbin/tcpdump -s 0 -X ‘tcp dst port 80′
    具体查看linux如何查看某个端口接收到的数据

主意事项

  1. dumpio 日志内容过于庞大,小心磁盘爆满
  2. 用户提交的数据属于个人隐私,请服务器管理员做好个人资料保护。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>