保存用户的$ _SERVER ['REMOTE_ADDR']用于识别道德标识吗?

时间:2016-03-10 22:39:50

标签: php

我想跳过登录过程,而是使用PHP的“$_SERVER['REMOTE_ADDR']”功能保存用户的服务器IP,并将它们保存在数据库中,以便以后在我的网站上执行活动时进行识别,现在问题就是这样。

我是否必须通知用户我正在保存这些信息,就像我会使用Cookie一样?

2 个答案:

答案 0 :(得分:0)

$_SERVER['REMOTE_ADDR']

  

TCP连接的源IP,不能替换为   更改HTTP标头。

并且:

  

虽然技术上可以双向欺骗IP地址   在互联网上(通过BGP宣布犯规路线),此类攻击是   可能被发现并且不适用于典型的攻击者 -   基本上,您的攻击者必须能够控制ISP或运营商。   对TCP没有可行的单向欺骗攻击   (然而)。然而,在LAN上双向IP欺骗是微不足道的。

参考:Is it safe to trust $_SERVER['REMOTE_ADDR']?

进行IP地址过滤是一种通过使用IP地址白名单来减少攻击面的方法,但不进行身份验证,因为它只会验证网络地址而不是人员。

E.g。如果其他人碰巧使用同一台计算机,他不需要输入任何密码来获得相同的功能。因此,您无法在个人层面强制执行问责制。

但是,如果您将IP过滤与其他内容结合使用,例如在IP过滤之上的PIN码,已经好一点了。

答案 1 :(得分:-1)

您不必通知。由于欧盟法律,会通知cookie。 默认情况下,Apache像大多数其他类似的程序一样保存访问日志,以及您可能在服务器中使用的许多其他工具。无论如何,这些都保存了用户IP地址。所以你已经在保存它们了。 https://httpd.apache.org/docs/2.4/logs.html

这种方法的问题是,移动连接上的人(使用相同IP的整个区域),在同一个房屋上,或使用不同的浏览器将共享相同的IP。或者,使用移动设备旅行的人将不断更换IP,具有动态IP地址的人(这样的国家/地区,这种情况非常普遍)

想象一下,您使用的是两个Gmail帐户,无论使用哪种浏览器,它都只会将您登录到同一帐户。通常人们会期望一个网站是新鲜的"例如,在其他浏览器中运行时。

查看会话,这可能就是你想要的。