NGInx log_format удаляет все конфиденциальные данные из $ http_referrer - PullRequest
0 голосов
/ 26 мая 2020

Я хочу очистить URL-адрес $http_referrer, если он содержит номер кредитной карты, прежде чем он войдет в access.log. Моя цель - избежать записи CC -числов в access.log.

В приведенном ниже примере URL-адреса он имеет CC -номер:

Перед очисткой: https://example.com?cc_number=402312123416781

Ожидаемый URL после очистки: https://example.com


Ниже мой NGinx conf:

map $http_referrer $sanitized_http_referrer {
 default $http_referer;

 # sanitize referrer URL, remove query params if url contains any sensitive information like 
 # CC number 
 "need help" "";

}


http {
   # As shown below I'm able to manipulate `log_format` 
   # but, I don't know how to sanitize CC-Number before it gets into log

   log_format sanitize_referrer '$remote_addr - $remote_user [$time_local] '
       '"$request_uri" $status $body_bytes_sent '
       '"$sanitized_http_referrer" "$http_user_agent"';
}

server {
            access_log /var/logs/access.log sanitize_referrer
}

Пожалуйста, предоставьте любые входные данные, как очистить или удалить все параметры запроса , только если он содержит CC -Number в URL .

...