如何设置每个用户生成内容的数量限制


How to set limits for amount of user-generated content per user

在讨论板、图像主机等应用程序中为用户实现限制的最佳方式是什么?

假设我们想要设置StackOverflow的限制。匿名用户应该能够每12小时发布50个问题,注册用户每12小时可以发布100个问题。

我考虑创建一个数据库,存储有关IP/用户及其帖子的信息。数据将在12小时后被擦除。

然而,这样的解决方案很容易被黑客入侵。一个IP不应该产生超过100个问题,但如果一个用户在同一个IP上创建多个帐户呢?每个帐户都有自己的限制,所以用户可以生成无限数量的问题。

我必须限制每个IP的帐户数量(学校/其他有很多用户和单个IP的地方怎么办?)。

我可以就这个主题写上几个月。这是一个超级棘手的问题,不是用一颗银弹就能解决的。。。如果这对你来说是一个真正的问题,你会在前进的过程中一遍又一遍地解决它。

如果在你的网站上投放大量内容有价值,随着你的规模扩大,坏人会发现这一点,并绕过你的防御。你需要看看他们在做什么,适应并以不同的方式解决问题。这就是为什么GMail垃圾邮件团队仍然存在的原因。:)那个队的有钱人,聪明的姑娘/小伙子。如果它是"可解决的",他们现在就已经解决了。

做你上面描述的事情是一个很好的开始。我也会投资于仪器仪表&将数据推送到一个平台,在那里你可以事后分析它(例如:Hadoop集群)。通过这种方式,你可以研究直播网站的流量,看看你是否有问题,如果有,了解他们是如何做到的,这样你就可以适应。

欢迎来到加州酒店。。。在那里你可以随时退房,但永远不能离开。

大多数系统对未通过身份验证的用户使用基于IP的,对通过身份验证用户使用每个帐户。如果人们要注册多个帐户以规避您的安全,那么您可以使用captcha删除机器人程序和/或在新帐户被允许发布或使用基于ip的帐户之前为其设置一个冷静期,直到该帐户至少24小时。

您已经回答了您的问题,如果我是您,我会做以下事情:1.限制每个IP创建的帐户数2.设置一个DB,用于维护过去12小时内创建的内容的记录或计数器3.然而,对于访客来说,这可能很棘手,你可以使用IP+cookie来跟踪用户的活动,但是如果一个代理背后有很多用户,这可能会有问题。为此,你要么牺牲你的规则,要么严格要求。

我看过很多网站,当我在代理后面,他们说你已经访问过这个网站,但我从来没有。

这不会100%解决您的问题,可能会带来其他问题。

匿名用户不应该使用完全匿名的用户和注册用户并检查IP,而应该在每次发布问题时提供一封工作电子邮件作为验证和一个临时标识符(不会公开显示)。

当他们发布问题时,它将与电子邮件一起保存,他们应该在邮箱中收到问题激活链接

如果他们单击电子邮件中的链接,问题将被激活并发布,因此电子邮件服务器将作为临时标识符而不是客户端IP。

好吧,仍然有可能有些人使用10个不同的电子邮件帐户,向你发送问题,甚至可能吓跑一些人。