收藏本页 | 设为主页 | RSS
LOGO

我就上乐乐吧

最近项目网站出现安全问题,总是有人非法来提交相应的参数,但是因为Nginx日志只是记录下GET参数,并没有记录POST参数,所以有强烈需求要Nginx日志也记录POST...

您当前的位置:首页 » 技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:http://weibo.com/237h
微信:SuperBeautylove
轻博客:http://www593668com.lofter.com/
花瓣:http://huaban.com/sinsunson
Q群号:231151757
网站:http://www.593668.com
文件解压密码:593668.com
去广告插件adblock plus安装参考:网盘下载帮助点击
网盘下载帮助请参看:网盘下载帮助点击
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
Nginx日志文件如何记录POST请求内容

发布日期:2019-05-16  关键词: Nginx

最近项目网站出现安全问题,总是有人非法来提交相应的参数,但是因为Nginx日志只是记录下GET参数,并没有记录POST参数,所以有强烈需求要Nginx日志也记录POST参数,这样才能方便对URL代码出现的安全问题来进行排查。

其实Nginx里面有一个参数是可以记录POST参数的,就是$request_body,说明如下

This variable(0.7.58+) contains the body of the request. The significance of this variable appears in locations with directives proxy_pass or fastcgi_pass.

正如上文件所示,只需要使用$request_body即可记录POST的数据,更多的说明可以参看官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#.24request_body

有了这个参数,那么解决方法就简单了。

Nginx配置文件中的默认日志格式是:

log_forMAT main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

要将这段修改成为:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';

注意这是在http段里。

然后重新启动下Nginx即可。

当然如果只是想指定网站需要,那么可以自定义一个日志规则[同样在http段里]。

log_format  debug  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';

然后在要配置如此网站的域名server段里加入如下语句:

access_log  /var/log/nginx/wwww.593668.com.log debug;

同样重启Nginx即可。

现在再观察网站的日志,就会发现,相应的提交参数全部记录下来了。

Nginx日志文件如何记录POST请求内容,Nginx,技术杂萃

这样来进行调试就比较方便了,毕竟可以检查是否收到请求,收到什么样的请求,参数是什么,都可以直观从Nginx日志中提取了。
猜您喜欢:
Q群: 231151757微信:superimagelove 官网:www.593668.com