【发布时间】:2020-01-24 16:45:43
【问题描述】:
我正在尝试匿名化电子邮件地址(将其替换为 UUID)以避免在我的 nginx 访问日志中将它们保留为纯文本。目前,我只能通过覆盖 OpenResty's nginx.conf 将其替换为 ***** :
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$anonymized_request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
....
map $request $anonymized_request {
default $request;
~([^\?]*)\?(.*)emailAddress=(?<email_address>[^&]*)(&?)(.*)(\s.*) "$1?$2emailAddress=*****$4$5$6"; # $email_address;
}
include /etc/nginx/conf.d/*.conf;
}
当前结果:
# curl http://localhost:8080/?emailAddress=dat@mail.de&attr=hello
127.0. 0.1 - - [24/Jan/2020:11:38:06 +0000] "GET /?emailAddress=*****&attr=hello HTTP/1.1" 200 649 "-" "curl/7.64.1" "-"
预期:
127.0. 0.1 - - [24/Jan/2020:11:38:06 +0000] "GET /?emailAddress=a556c480-3188-5181-8e9c-7ce4e391c1de&attr=hello HTTP/1.1" 200 649 "-" "curl/7.64.1" "-"
请问,是否可以将 email_address 变量传递给将其转换为 UUID 的脚本?或者,我们如何使用log_by_lua_block 获得相同的日志格式?
【问题讨论】:
-
您以后需要从这个 UUID 中恢复原始电子邮件地址,还是只需要用一些随机 UUID 替换它们?
-
是的,我想使用任何确定性的 UUID 生成方法。我的主要问题是“如何将电子邮件传递给脚本以应用任何方法”,或者如果不可能,我们如何用
log_by_lua替换 nginx 日志记录,我可以在其中应用我的哈希/UUID 生成
标签: nginx nginx-config openresty nginx-log sidecar