This is my version.
@Yury Sergeev answer is only effective if there is only a single password
in the request.body. But if you have a registration page where you have confirmation_password
and other passwords like &password=pass1234&confirmation_password=pass1234&withdrawal_password=pass1234
it will not work.
My version is even though manual and dirty.. But it will still hide those passwords
map $request_body $req_body_step_1 {
"~(?<start_request>.*)\&(?<pwd>.*password)=[^\&]*(?<end_request>.+)" "$start_request$end_request";
default $request_body;
}
map $req_body_step_1 $req_body_step_2 {
"~(?<start_request>.*)\&(?<pwd>.*password)=[^\&]*(?<end_request>.+)" "$start_request$end_request";
default $req_body_step_1;
}
map $req_body_step_2 $req_body_step_3 {
"~(?<start_request>.*)\&(?<pwd>.*password)=[^\&]*(?<end_request>.+)" "$start_request$end_request";
default $req_body_step_2;
}
map $req_body_step_3 $req_body_step_4 {
"~(?<start_request>.*)\&(?<pwd>.*password)=[^\&]*(?<end_request>.+)" "$start_request$end_request";
default $req_body_step_3;
}
map $req_body_step_4 $req_body_step_5 {
"~(?<start_request>.*)\&(?<pwd>.*password)=[^\&]*(?<end_request>.+)" "$start_request$end_request";
default $req_body_step_4;
}
map $req_body_step_5 $req_body_step_6 {
"~(?<pwd>.*password)=[^\&]*(?<end_request>.*)" "$end_request";
default $req_body_step_5;
}
log_format main '"Request-Body": $req_body_step_6';
Your request body like username=3124124&password=3124124&confirmation_password=3124124&withdrawal_password=24124134231&real_name=Dean&phone=13412345678&email=xxx@yahoo.com
will become username=312412&real_name=Dean&phone=13412345678&email=xxx@yahoo.com