我们的想法是我们有一个免费下载的网站
但每个用户的每日下载量会有限制(例如每个用户每天 5 dl) 因此会有拥有多个帐户的用户。
- IP检测不好;因为我有来自一个 ip 的许多用户(来自一个组织的用户)
- 电子邮件验证和唯一电子邮件帐户不好;您可以创建多个帐户
- 短信确认不好;用户可以使用他/她的 friend 手机号码注册另一个帐户
我看到一个网站(部分)解决了这个问题www.gameknot.com
他们通过计算机名称或 MAC 地址或其他我不确定的东西来检测用户, 我在那里注册了 3 个用户,他们检测到我,说:“这三个用户正在使用同一台计算机”!并禁止了所有三个帐户。
当我重新安装另一个 Windows 时,问题解决了,那里有一个用户。
所以我问自己,“他们是怎么做到的”?
对于如何处理这个问题有什么建议吗?
最佳答案
如果我要实现这样一个系统,每个用户只有一个登录或类似的东西,我会做这样的事情:
1:创建一个机器的ID,基于IP,也许使用JavaScript/Java Applet/Flash你可以获得MAC或者我不知道考虑了什么。为简单起见,假设我这样计算主机 ID:
ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC)
2:用户 1 登录,假设我计算出主机 ID = 666。我们在数据库中查找一个表,假设 table_hosts 包含此数据(用户,host_id)
3:用户 1 使用了全部 5 次下载(使用 session 或数据库中的记录来跟踪它们)
4:User1 尝试以 User2 身份登录,现在我们计算出 ID = 666,相同的 ID = 666,我们查找 table_hosts 并发现 User1 当天也使用了相同的主机 ID。现在我们可以禁止具有该 ID 的帐户,发出警告,例如 20% 直至禁止等
希望我能提供帮助,但请记住要有创意,这才是最重要的!
LE:因为其他人讨论的是共享机器,所以 ID 可能是这样计算的:
ID = MD5(PUBLIC_IP) + MD5(LOCAL_IP) + MD5(MAC) + MD5(NameOfLoggedOnUser)
但这也有其缺点,滥用者可能会在其计算机上创建 2 个或更多帐户。不管怎样,我再说一遍,要有创意,是的,我们不应该忘记任何锁都可以被 pry 开。
关于accounts - 如何防止用户在每日免费有限服务上创建多个帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1964324/