使用Nginx和Lua屏蔽POST请求正文

时间:2019-05-07 05:08:07

标签: nginx lua nginx-ingress lua-ngx-module

我使用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 '';
}

0 个答案:

没有答案