我使用Nginx Ingress控制器将一些请求代理到许多服务中。作为此操作的一部分,我想屏蔽登录到POST
的一些敏感信息(access.log
正文的内容)。
例如,想用password123
遮盖下面的****
,
"request_body": "username=test%2Badmin%40test.co&password=password123&_csrf=uuid"
并屏蔽所有后续信息,例如confirmPassword
。该信息可以存在于request_body
中的任何地方。
是否可以使用一些Lua魔术(lua-nginx-module)来实现这种遮罩?
我设法通过map
实现了以下目标,但是我希望在Lua中使用一个干净的解决方案,
map $request_body $req_body_start {
"~(?<start_req>.*)\&password=[^\&]*.+" $start_req;
default $request_body;
}
map $request_body $req_body_end {
"~.*\&password=[^\&]*(?<end_req>.+)" $end_req;
default '';
}
map $request_body $req_body_pwd {
"~.*\&password=[^\&]*.+" '&password=****';
default '';
}