【问题标题】:Heuristics to discover spammers/bots (In forums, blogs etc)启发式发现垃圾邮件发送者/机器人(在论坛、博客等中)
【发布时间】:2009-04-09 18:18:21
【问题描述】:

我能想到的方法是:

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

还有什么想法吗?

【问题讨论】:

  • 不是一个真正的答案,但我已经看到人们通过将 .ru 和 .cn 中的子网列入黑名单来减少大部分评论/论坛垃圾邮件。除非您有来自这些国家/地区的读者。

标签: spam-prevention bots heuristics


【解决方案1】:

我可能高估了机器人创造者的智慧,但 6 号对于任何半正派的机器人创造者来说完全没用。使用 C# 浏览器控件来创建您的机器人几乎会使 6 变得无用。从我所看到的那种类型的软件来看,这是一种非常常见的方法。

在用户代理上验证几乎没有用,我用来获取的所有博客垃圾邮件都来自看似有效的网络浏览器的机器人。

我曾经收到很多博客垃圾邮件。我真的会每天删除数百个 cmets。我使用了 reCaptcha,现在我可能会每月获得 1 个。

如果你真的尝试做这样的事情。我会尝试执行以下操作:

用户开始时无法发布网址。

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

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

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

这只是我想到的第一件事。希望对您有所帮助。

【讨论】:

  • +1 对于我个人而言,限制新用户发布网址的想法非常好。不确定它的一般性。
【解决方案2】:
  • 帖子中的链接数。

我相信我在某处读到 Akismet 使用链接数作为其主要启发式方法之一。

我博客中的大部分垃圾邮件都包含 10 多个链接。

说到这...您可能只想查看Akismet API 本身...它们非常有效。

【讨论】:

  • +1。帖子中的链接是一个非常好的链接。同样,您可以交叉引用那些来自 Spamhaus.org 的黑名单
【解决方案3】:

在帖子正文中搜索与垃圾邮件相关的关键字怎么样?

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

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

    • Spamhaus 看起来很有希望 :-) ...但我认为我在黑名单和代理方面的经历很糟糕... :-(
    【解决方案5】:

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

    但是,他们并不是街区中唯一的玩家。

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

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

    最后,您可以查看LinkSleeve,它声称以不同的方式处理垃圾评论。基本上,它会检查在 cmets 中链接到的链接,并根据链接的去向做出决定。

    【讨论】:

    • Honeypot 的过滤过于激进。由于我的 ISP 的代理地址包含在列表中,我曾经被禁止访问我自己的网站...对我来说完全是一个无赖:-( ...但无论如何 +1 :-)
    【解决方案6】:

    不要忘记终极启发式方法:用户可以单击的“报告垃圾邮件”按钮。如果不出意外,这让您作为管理员有机会更新您的规则库以查找可能漏掉的内容。当然,您也可以直接删除违规帖子和用户。

    【讨论】:

    • 请注意,这可能是一种滥用媒介,最明显的是,如果您让用户多次投票或允许匿名用户投票 - 恶意用户可以使用它来让他们不同意的人保持沉默。为防止这种情况发生,请考虑人工审核(可能由受信任的用户)或至少一个上诉流程。
    【解决方案7】:

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

    【讨论】:

    • 4..这是启发式的,也是最难实现的,但是您可以从这样的系统中获得更多收益,而不仅仅是垃圾邮件过滤器(一种跟踪用户在您网站上的行为的系统) .
    • 是的,我的意思是很难追踪行为模式。 IE。在堆栈溢出时,无需点击他们的个人资料即可浏览问题。
    【解决方案8】:

    我确信有某种网络服务,您可以获得顶级 SEO 关键字列表,检查这些关键字的内容。如果内容包含丰富的关键字,则怀疑它是垃圾邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 2011-08-12
      • 2010-09-20
      • 2013-06-13
      • 2011-06-04
      • 2020-07-18
      相关资源
      最近更新 更多