欧盟的通用数据保护条例 (GDPR) 和德国的 DSGVO 实施对于与个人相关的数据(例如 IP 地址)非常严格。然而,这个问题与 GDPR 无关,而是如何使用 nginx HTTP 访问日志来实施监管,同时保持在用户旅程中“识别”匿名用户的可能性(将用户旅程与其他用户旅程分隔)。
我目前的实现是,我根本不记录远程 IP 和端口。我清除了上游/代理/等的环境变量,并且简单的访问日志没有远程 IP 和端口信息。
现在我面临的问题是我需要遵循用户旅程的路径。我只是没有任何方法可以“识别”哪些请求在哪个用户旅程中。我想指出,我也不使用 cookie 等。
“识别”“匿名用户”的传统方法是查找远程 IP 和日期信息。在同一天,同一个远程 IP 很可能是同一个用户。但是,如上所述,我不记录远程 IP 和端口信息。我现在也不想这样。
我目前的做法是使用远程端口和请求日期对远程 IP 地址进行哈希处理。我将获得带有日志的日期信息,但没有远程端口,所以我无法 - 如果没有严重的暴力破解 - 恢复远程 IP,即与个人相关的数据。这种方法将有助于回馈一定程度的用户旅程识别,这对我有很大帮助。
完成这种方法的一般工作流程是:
- 请求被 nginx 接受,
- nginx 使用远程 IP、远程端口和当前日期(例如
md5_hex("$remote_addr $remote_port $current_date")
)执行哈希操作,并将哈希存储在新变量中(例如$remote_ip_anonymous
), - log_format 将具有 $remote_ip_anonymous 变量。
由于当前的日期盐,即使远程 IP 和远程端口相同,哈希也会改变。当远程端口改变时,它会改变。所以这对于 GDPR 或至少最低的数据安全类别应该没问题,而实际的远程 IP 将是 GDPR 的市长数据安全类别。
理论够了……我将如何实现这样的远程 IP 匿名化?我是否必须使用 nginx Perl 模块或 Lua 模块,或者是否有另一种(更快)方法来获取该哈希并将其存储到 nginx 变量中?
欧盟的通用数据保护条例 (GDPR) 是关于“在处理个人数据方面保护自然人以及与个人数据自由流动相关的规则”。这与如何破坏 IT 系统无关。最好的方法是冷静下来,看看在个人数据保护方面什么可以,什么不可以。
Web 服务器处理浏览器/客户端的 IP 地址在技术上是必不可少的。如果没有这种能力,Web 服务器将无法将响应发送回浏览器/客户端。
避免处理个人数据是没有选择的。(实际上当然有选择。例如TOR浏览器或使用匿名代理将是一个选项。但这必须由客户端完成。)
关于您的网络服务器和 GDPR 投诉设置,您应该:
但是,在 Nginx 中有适当的匿名 IP 日志记录方法。我不会推荐它,但它有效。
如何在 7 天后删除日志文件:
使用已安装的服务日志轮换,您必须按如下方式更改 Nginx 配置文件...