发现垃圾邮件发送者/机器人的启发式方法(在论坛,博客等)

时间:2009-04-09 18:18:22

标签: spam-prevention bots heuristics

我能想到的方法是:

  1. 测量动作之间的时间。
  2. 比较帖子的内容(如果它们彼此太相似),或者更好的是,只发布已发布的链接。
  3. 检查用户处于活动状态的一段时间内的分布(如果用户处于活动状态,比如说每小时发布一次,一周,那么我们这里有一个超人或机器人。)
  4. 预计会有一些特殊活动:比如在stackoverflow中,我希望用户按下他们的用户名链接(顶部中间)来查看他们的新答案,评论,问题等。
  5. (由chakrit添加)帖子中的链接数。
  6. 不是启发式的。使用一些异步JS进行用户登录。 (只是让机器人程序员的生活更加艰难)。
  7. (由Alekc添加)不是启发式的。用户代理值。
  8. 而且,我怎么能忘记谷歌的方法(由Will Hartung提到)。让用户能够将某人标记为垃圾邮件,足够的垃圾邮件投票意味着这是垃圾邮件用户。 (计算足够多的用户,就是这里的工作)。
  9. 还有什么想法?

8 个答案:

答案 0 :(得分:4)

我可能过度估计机器人创造者的智慧,但是对于任何半体面的机器人创造者来说,数字6都是无用的。使用C#浏览器控件来创建你的机器人几乎可以渲染6无用。从我所看到的那种类型的软件来看,这是一种非常常见的方法。

对useragent的验证几乎没用,我用来获取的所有博客垃圾邮件都是来自机器人看似有效的网页浏览器。

我用来获取大量的博客垃圾邮件。我真的会每天删除数百条评论。我使用了reCaptcha,现在我可能每月得到1个。

如果你真的想做这样的事情。我会尝试做以下事情:

用户启动后无法发布网址。

在分析了与帖子中其他帖子相关的X个帖子后,让他们访问帖子网址。

网站上的用户活动,帖子质量以及您认为必要的其他因素将成为用户IP的声誉。

然后根据同一子网上的IP和其他IP的声誉,您可以根据需要做出其他决定。

这才是我想到的第一件事。希望它有所帮助。

答案 1 :(得分:3)

  • 帖子中的链接数量。

我相信我已经阅读了Akismet使用链接数量作为其主要启发式之一的地方。

我博客上的大多数垃圾评论都包含10个以上的链接。

说到哪......你可能想查看Akismet API本身......它们非常有效。

答案 2 :(得分:1)

如何在帖子正文中搜索与垃圾邮件相关的关键字?

不是启发式方法,而是一种有效的方法:您还可以使用StopForumSpam了解APIs发布的统计信息。

答案 3 :(得分:1)

我相信,页面访问之间的时间很常见。

我需要在个人网站上添加评论部分,并考虑让人们给我他们的电子邮件地址;我会通过电子邮件向他们发送“发布评论”链接。

您可能想查看它们是否来自垃圾邮件黑名单IP地址(请参阅http://www.spamhaus.org/

答案 4 :(得分:1)

another answer建议使用Akismet检测垃圾邮件,我完全支持。

然而,他们并不是该街区唯一的球员。

TypePad AntiSpam使用与Akismet相同的启发式方法,以及相同的API(只是一个不同的URL和api密钥,调用的结构是相同的)。可以肯定地说他们采用与Akismet相同的方法。

您可能还想查看Project Honeypot。据我所知,它可以根据用户的IP地址进行查找,如果是已知的恶意IP,它会告诉你(收割机或类似的东西)。

最后,您可以查看LinkSleeve哪些方法可以使用与其声称不同的方式来评论垃圾邮件。基本上,它会检查评论中链接的链接,并根据链接的位置进行确定。

答案 5 :(得分:1)

不要忘记终极启发式:用户可以点击的“报告垃圾邮件”按钮。如果不出意外,这会让您作为管理员有机会更新您的规则库,以获取可能正在滑落的内容。当然,你也可以直接删除有问题的帖子和用户。

答案 6 :(得分:0)

我有一些关于4°点的疑问,无论如何我还会添加User-Agent。假装很容易,但根据我的经验,大约90%的机器人使用Perl作为UA

答案 7 :(得分:0)

我确信有一种类型的网络服务,您可以获得最佳SEO关键字列表,检查这些关键字的内容。如果内容丰富的关键字怀疑它是垃圾邮件。