Asp.net mvc 限制一段时间内用户帐户注册的数量?

Asp.net mvc 限制一段时间内用户帐户注册的数量?,asp.net-mvc,security,validation,Asp.net Mvc,Security,Validation,我有一个需要用户拥有帐户的web应用程序。然后,该用户可以对特定项目进行“一次”投票。然而,一些用户注册了许多帐户来“玩”这个系统 有人知道如何限制这类事情吗 我可以限制每个IP地址每天的注册数吗?(这有什么问题?) 还有其他建议吗?您可以将注册限制为每个用户只有一个IP地址,这样做会更好。如果你计划让所有住在同一屋檐下的家庭都拥有自己的帐户,这可能不好,但在大多数情况下,这是可行的。是的,限制每个IP的注册是合理的。我可能会在每个滚动时间段注册(比如,每个IP在任何一个小时内最多注册一个新帐户

我有一个需要用户拥有帐户的web应用程序。然后,该用户可以对特定项目进行“一次”投票。然而,一些用户注册了许多帐户来“玩”这个系统

有人知道如何限制这类事情吗

我可以限制每个IP地址每天的注册数吗?(这有什么问题?)


还有其他建议吗?

您可以将注册限制为每个用户只有一个IP地址,这样做会更好。如果你计划让所有住在同一屋檐下的家庭都拥有自己的帐户,这可能不好,但在大多数情况下,这是可行的。

是的,限制每个IP的注册是合理的。我可能会在每个滚动时间段注册(比如,每个IP在任何一个小时内最多注册一个新帐户)。您还可以标记可疑的注册(例如,每个IP每天超过5个),以便以后跟进


你也可以限制用户投票,直到他们通过一些障碍,类似于SO的声誉系统。禁止投票,直到他们成为用户一周,至少发布两次,有一个好友请求,等等。

我记得当我运行在线RPG时,当超过5个左右的帐户在同一天使用相同的IP登录时,我会标记为。

一个潜在的问题是,如果你的用户在NAT后面,例如家庭路由器、ISP代理、,或公司防火墙。您将看到它们的IP都相同

我不会阻止人们,而是简单地记录他们的IP,创建一个重复IP的报告,您可以定期运行该报告来调查可疑活动


此外,你可以采取社交方式,将用户的IP发布到某个地方。这将为伪造帐户的人提供一个温和的警告和抑制,并允许你的用户社区潜在地识别伪造者。

人们提到NAT问题。读取标题x-forwarded-for,并将其与标准ip地址进行比较

如果存在x-forwarded-for,则使用此值。大多数正确配置的NAT路由器将填充此字段。唯一没有的通常是匿名代理

如果您真的担心有人在玩系统,请使用一个使用套接字连接并向套接字侦听器提供会话id的闪存位。然后,您可以将其与ip地址和x-forwarded进行比较。如果不匹配,则它们位于匿名代理的后面。您可以放心不让他们创建帐户


这是因为大多数匿名代理都不是所有网络流量都通过的全Socks代理,只有HTTP。这对我来说非常有效,在过去,我们有一场投票竞赛,人们使用匿名代理来玩这个系统。

你可以通过电子邮件地址设置限制,而不是通过帐户进行限制。如果用户需要提供他们的电子邮件地址,您已经为他们设置了一个障碍。确保他们必须回复确认电子邮件,以确保电子邮件地址是真实的。还要跟踪电子邮件地址和IP地址,如果单个IP地址有5个或更多电子邮件地址,则将任何计数标记为可疑。(在这种情况下,您可以检查这些地址,看看它们是否有某种关联,就像所有来自相同域名或类似名称的地址一样。)
当然,人们可以使用GMail或Hotmail创建几十个电子邮件地址,即使他们有自己的私有域。但对许多人来说,这已经有点太多了。基本上,如果你看到gmail.com上的5个电子邮件地址具有相同的IP地址,这是可疑的。

我建议实施不同的身份验证机制,例如OpenID,或者Alex说,强制用户指定有效的电子邮件,并在创建帐户之前通过电子邮件向他们发送确认链接


我的首选当然是OpenID。

但是那些从本地图书馆获得主要互联网访问权限的人(是的,他们仍然存在)呢?如果多个用户在同一个图书馆,同时都在使用你的应用程序,那么你手上就有一个非常好的应用程序。听起来是个很好的问题!干杯。但我敢肯定,我们这里不是在讨论用户活动。重要的是在相对同一时间从同一IP创建多个新帐户的可能性。这是我书中的一个危险信号。