accounts - 如何防止用户在每日免费有限服务上创建多个帐户

标签 accounts

我们的想法是我们有一个免费下载的网站

但每个用户的每日下载量会有限制(例如每个用户每天 5 dl) 因此会有拥有多个帐户的用户。

  1. IP检测不好;因为我有来自一个 ip 的许多用户(来自一个组织的用户)
  2. 电子邮件验证和唯一电子邮件帐户不好;您可以创建多个帐户
  3. 短信确认不好;用户可以使用他/她的 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/

相关文章:

paypal - 无法登录 PayPal 沙盒帐户

windows - GetVolumeNameForVolumeMountPoint() 的用户/密码问题(Windows 远程驱动器安装?)

login - meteor 帐户恢复 token "Remember Me"

winapi - 如何在 Windows 中获取用户帐户和内置安全原则

cookies - 并发用户 session - 为什么我们看不到更多?

objective-c - 未调用 requestAccessToAccountsWithType 完成

php - MySQL数据库检查

javascript - 如何使用 Meteor 进行账户输入?

android - 如何在 Android 上启动 Activity 管理帐户/同步设置?