Использование Nginx и Lua для маскировки тела запроса POST - PullRequest
0 голосов
/ 07 мая 2019

Я использую контроллер Nginx Ingress для прокси-обработки некоторых запросов во многих сервисах.Как часть этого я хочу замаскировать некоторую конфиденциальную информацию (содержимое POST body), которая регистрируется в 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 '';
}
...