1

我有一个人们可以发布文本的网站。每个帖子都存储在一个数据库中,其中包含发布者的 ip 和发布时间。如果我能确定海报是机器人、垃圾邮件发送者等,我希望能够显示一个recaptcha。

什么是一个好的算法来做到这一点?最简单的选择是分析预定时间段内的帖子数量,比如一分钟,是否大于选择的限制,比如 10。但是,这有一个缺陷是多个人从同一个 ip 后面发帖,甚至是创建随机频率间隔>该时间段的机器人,或发布少于该时间段限制的帖子。

显然没有“正确”的答案。然而,有些算法比其他算法更好,我只是想找到最好的算法。

4

1 回答 1

1

您可以采用基于限制的方法,并充分利用网站分析

一个 IP 在单个上下文中发布内容的次数必须有限制。例如,对于 StackExchange 问题(上下文),我的 IP 地址(在大多数情况下)将发布一个答案(而不是评论)。一个以上的答案是不常见的,因此是可疑的。在其他一些情况下,频率可以达到几次,例如 StackExchange 评论。

然后必须限制用户在单次访问中花费的时间。如果您使用谷歌网站分析,您必须知道用户在您的网站上花费的平均时间。使时间限制远大于此,或您可以提出的任何其他标准,包括命中和试验方法。

此外,您可以使用博客方法,但需要稍作改动。不要在每个帖子上都有验证码,而是在用户登录或发布第一篇帖子时使用它。之后,仅在一段时间间隔或他/她的一些帖子后才发布验证码。

于 2011-10-20T11:46:56.517 回答