小编Kas*_*bbe的帖子

带分隔符的可解析 NGINX 访问日志文件

默认的 NGINX 格式是这样的:

log_format combined '$remote_addr - $remote_user [$time_local]  '
                '"$request" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent"';
Run Code Online (Sandbox Code Playgroud)

这有点难以解析。我担心人们会注入"请求、引荐来源或用户代理。

我考虑过使用分隔符,并使用我自己的格式,|P-,|用作分隔符:

log_format parsable '$status |P-,| $time_iso8601 |P-,| $http_host 
|P-,| $bytes_sent |P-,| $http_user_agent |P-,| $http_referer 
|P-,| $request_time |P-,| $request';
Run Code Online (Sandbox Code Playgroud)

但是,没有什么可以阻止用户注入|P-,|他们的请求、引荐来源或用户代理。

我读了这篇关于 ASCII 分隔文本的文章:https : //ronaldduncan.wordpress.com/2009/10/31/text-file-formats-ascii-delimited-text-not-csv-or-tab-delimited-text/

我认为这可以用来解决这个问题,但用户也可以将 ASCII 分隔符注入他们的数据中。

是否有解决此问题的最佳实践方法?

nginx logging format parsing

7
推荐指数
1
解决办法
5300
查看次数

标签 统计

format ×1

logging ×1

nginx ×1

parsing ×1