繁体   English   中英

如何专门跟踪用户? 例如,通过使用他们的永久私有 IP

[英]How can I keep track of user specifically? Example, via using their permanent private IP

今天我决定我想在我的框架上做更多的工作,并想添加速率限制。 我以前做过这样的事情并让它工作。 它的工作原理是获取您的公共路由器掩码 IP 并将其存储在数据库中,然后对每个请求进行计数,一旦达到限制,它将开始阻止您一段时间然后重置。

问题

那么问题是我用这个代码片段让用户 IP :

$client['IP'] = $_SERVER['REMOTE_ADDR'];

此代码获取客户端的公共 IP 或路由器分配的 MASKED IP。 现在这是一个问题,因为如果网络上的一个人在发送垃圾邮件并且是坏人,那么网络上的好人也会在一定数量的速率限制后受到速率限制,它会阻止你一段时间。

因此,在 PHP 中,是否有一些可能的方法来跟踪针尖用户,所以我可以有一些东西可以保证在至少一周内精确定位用户,因为您的 ISP 每 14 天不断更换您的 IP。

谢谢!

不单独使用 IP 你不能,不。

即使您可以获得私有 IP (您不能)...

  • 它可能不会是唯一的(在该专用网络中除外),
  • 它不太可能是永久性的(主要是因为 DHCP),
  • 同一设备可以切换网络(例如不同的 Wifi 网络或 4G),每次给它一个不同的公共和私有 IP,并且
  • 无论如何,许多人使用不止一种设备。

跟踪用户的一种明显且更可靠的方法是通过您的身份验证方案。 如果用户必须在向您的端点发送请求之前进行身份验证,您可以跟踪特定用户发出的请求数量并对其进行限制。 (如果你想变得微妙,你可以根据它们的敏感性或受欢迎程度,或者它们对你的基础设施造成的负载,对不同的端点施加不同的限制。如果他们从多个 IP 连接,你还可以限制每个 IP 的用户,你认为这是有道理的。)

如果您允许匿名访问部分或全部数据,那么您可以使用 API 密钥对用户进行一些跟踪,您可以将其作为 GUID 发布给在 API 注册的每个应用程序或用户,但它们并不完全保密. 然后,您可以对每个密钥和/或每个用户应用速率限制。 这就是 Google 等大型 API 提供商的做法 - 或者,至少这是他们用来帮助限制速率(和其他事情)的一种技术,无论如何。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM