我已经通过python创建了一个服务登录模块。我想限制登录。基于每个IP地址的失败尝试的登录可能不会很好地工作并且使通过本地网络连接到因特网的用户烦恼,因为他们具有相同的外部IP地址。 有没有办法唯一识别这样的用户? 非常感谢!
答案 0 :(得分:0)
如果用户支持NAT,我认为没有防弹解决方案。 要区分这些用户,您需要私有IP地址,这是IP层无法获得的。如果用户位于NAT后面,则只能看到对所有客户端都相同的公共/外部IP。你可以尝试 在应用程序级别(客户端)获取私有IP,但这将是棘手的(如果私有地址是通过DHCP获得的,它可以在请求之间更改) 我能想到的另一个解决方案是通过cookie识别用户。 因此,对每个失败的登录请求的HTTP响应将包含唯一标识该客户端的cookie。通过这种方式,您可以区分具有相同IP的用户。您必须签署cookie值才能保持其完整性。但是,如果客户端在每个失败的请求后删除cookie,则无效。