gpt4 book ai didi

nginx - 如何在nginx日志中屏蔽POST body的敏感信息?

转载 作者:行者123 更新时间:2023-12-04 20:34:50 25 4
gpt4 key购买 nike

为了分析方便,我们保存$request_body访问日志中的字段。但是,日志中暴露了帖子正文中的一些敏感信息,例如密码或信用卡号。我们如何掩盖这些信息?

password=1234asdf  ->  password=****

如果我写一个 nginx 模块来屏蔽数据,我应该写一个新的日志模块还是应该在调用原始日志模块之前操作请求体?
或者我应该使用 nginx-lua 来实现这个目标?
或者有没有其他方法?

最佳答案

使用“echo_read_request_body”命令获取 HTTP POST 数据,然后使用“map”和 regex 过滤密码

map $request_body $req_body_start {
"~(?<nopwd>.*)\&password=[^\&]*.+" $nopwd;
default $request_body;
}

map $request_body $req_body_end {
"~.*\&password=[^\&]*(?<nopwd1>.+)" $nopwd1;
default '';
}

map $request_body $req_body_pwd {
"~.*\&password=[^\&]*.+" '&password=****';
default '';
}

然后定义 log_format 并在服务器/位置级别使用它:
log_format  logreqbody  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$req_body_start$req_body_pwd$req_body_end"';

这里有更多信息: https://www.rstcloud.net/blog/30-how-to-hide-sensitive-post-data-in-nginx-log

关于nginx - 如何在nginx日志中屏蔽POST body的敏感信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com