GDPR - 在nginx中匿名化IP(最后一个八位字节%2=0)



我找到了一些在nginx日志中匿名IP的解决方案 - 比如这个 nginx中的匿名IP日志记录?

但这会将 IP 剥离到 C 子网。这太过分了。就我的目的而言,在我看来,如果 IP 的最后一个八位字节除以 2,下限并乘以 2 再一次,GDPR 编译就足够了。所以IP将不准确。

可以在nginx/map中完成此操作。我还没有任何运气。

在执行此操作之前,请查看其他法律,如果您的网站托管在欧盟,UE 指令 2002/58/EC 要求您在 6 个月到 2 年之间存储真实 IP 地址,具体取决于您在欧盟内的国家/地区。

如果您在欧盟托管您的网站,则只有在一段时间后才允许匿名或伪化 IP 地址。

所以我

有答案,不是纯粹的nginx,使用编译的perl。

nginx.conf

load_module /usr/local/libexec/nginx/ngx_http_perl_module.so;

(取决于操作系统 - 这是在freebsd上(

在 httpd {

perl_set $remote_addr_anon 'sub {
    use POSIX;
    my $r = shift;
    my $str = $r->remote_addr;
    my @ex = split(/./, $str);
    if ( scalar @ex == 4 ) {
            my $anon_ip = @ex[0] . "." . @ex[1] . "." . @ex[2] . "." . (floor(@ex[3]/2)*2) ;
            return $anon_ip;
    } else {
            return "IPv6"
    }
}'; 
log_format anonymized '$remote_addr_anon - $remote_user [$time_local] ' 
'"$request" $status $body_bytes_sent ' 
'"$http_referer" "$http_user_agent"';

然后在access_log中使用匿名访问日志格式。

我不使用IPv6,所以不关心它。如果你净化了这个,你可以,我不熟悉perl。

相关内容

  • 没有找到相关文章

最新更新