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

GDPR-在nginx中匿名化IP(最后一个八位组%2=0),nginx,Nginx,我在nginx日志中找到了一些匿名化IP的解决方案,如下所示 但这会将IP剥离到C子网。太过分了。就我的目的和GDPR编译器而言,我认为如果IP的最后一个八位字节被2除,再加上一层,再乘以2,就足够了。所以IP并不精确 可以在nginx/map中完成此操作。我还没有任何运气。所以我有答案,而不是纯nginx,使用编译的perl nginx.conf load_module /usr/local/libexec/nginx/ngx_http_perl_module.so; 取决于操作系统-这取决

我在nginx日志中找到了一些匿名化IP的解决方案,如下所示

但这会将IP剥离到C子网。太过分了。就我的目的和GDPR编译器而言,我认为如果IP的最后一个八位字节被2除,再加上一层,再乘以2,就足够了。所以IP并不精确


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

所以我有答案,而不是纯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"';
然后在访问日志中使用匿名访问日志格式


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

在做这件事之前先看看另一条法律,如果你的网站是在欧盟托管的,UE指令2002/58/EC要求你存储6个月到2年之间的真实IP地址,这取决于你在欧盟内的国家


如果您在欧盟托管您的网站,什么样的匿名或伪匿名IP地址只允许在一段时间后使用。

Tim a.在一篇评论中回答说,GDPR取代了2002/58/EC。因此您必须遵守GDPR。@Baptiste您是在谈论数据保留指令吗?这是所提到的文件中唯一的一部分e我可以找到一个类似的要求:然而,它在2014年被宣布无效。好吧,这也不是针对一个网站的托管者,而是针对实际的提供商。你能添加一个链接,在那里你可以找到你引用的要求吗?@StephenKennedy看起来即将到来的ePR将废除2002/58/EC,所以,它是ac实际上不是GDPR,它正在取代2002/58/EC,因为我不能评论巴蒂斯特·拉沃尔·西蒙:GDPR取代了2002/58/EC。所以你必须遵守GDPR。