可以做些啥来防止类似论坛的应用程序中的垃圾邮件?

Posted

技术标签:

【中文标题】可以做些啥来防止类似论坛的应用程序中的垃圾邮件?【英文标题】:What can be done to prevent spam in forum-like apps?可以做些什么来防止类似论坛的应用程序中的垃圾邮件? 【发布时间】:2010-09-18 07:29:05 【问题描述】:

对于pastie.org 或p.ramaze.net 等网络应用程序,除了验证码之外,还有其他方法吗?对于我的口味来说,验证码需要很长时间才能完成。

【问题讨论】:

我同意你的验证码。如果可以,请避免使用它们。 我同意。验证码的一大禁忌 【参考方案1】:

我之前已经成功使用过 hashcash。

它需要启用 javascript 的浏览器,并将帖子延迟几秒钟(可配置),但优点是不会增加 UI 复杂性。

虽然 hashcash 不能避免垃圾邮件 per se,但它要求垃圾邮件发送者浪费时间计算 javascript 哈希,这反过来又要求垃圾邮件发送者启用了 javascript(这非常罕见),并且它每分钟只能发送几封垃圾邮件

【讨论】:

【参考方案2】:

你可以试试Honeypot CAPTCHAs。本质上,您使用 CSS 隐藏了一些表单字段。您的用户永远不会填写这些字段,因为他们看不到它们,但不支持 CSS 的垃圾邮件机器人会填写它们。在服务器端,您只需忽略 cmets/pastes/etc。填写了该字段。

除了蜜罐之外,您还可以使用时间戳和一次性令牌来阻止重放攻击。这是discussion of combining the two techniques。

【讨论】:

【参考方案3】:

就我个人而言,在我的博客上,我收到了很多来自机器人的垃圾邮件。在分析了垃圾邮件的样子后,我做了一些快速的正则表达式来检测诸如充满链接的帖子,或者主题、评论和名称字段都填充相同文本的情况。如果帖子被阻止,我会显示一条很好的用户友好消息。自从我采用了这种技术,我每周收到的垃圾邮件数量从数百个减少到几乎为零。我想我想说的是,分析您收到的垃圾邮件流量,看看是否有一种简单的方法可以将其切断,只需进行一些简单的分析,而不是求助于验证码之类的东西。

【讨论】:

【参考方案4】:

你可以试试Akismet。它非常擅长阻止垃圾邮件,可能是免费的(取决于您的使用情况),并且具有适用于众多网络应用程序的 API。

虽然没有列出您的两个,因此需要一些工作才能使其与它们一起使用。 paste.org 是基于 rails 的吗?如果是这样,那么就有一个用于 Akismet 的 rails API。

【讨论】:

我在我运行的论坛上使用 Akismet。 Akismet 专为博客文章而设计,理论上适用于任何事情。这很不错,但我发现论坛帖子的误报率更高,而且与普通博客 cmets 相比,更多的论坛 cmets 被阻止。我仍然会推荐它。 Akismet 的误报率高得令人无法接受,我有 2/2 的误报率是 2 次禁令。完全不能接受。【参考方案5】:

来自wikipedia

验证码系统是一种 自动生成新的 挑战:

* Current software is unable to solve accurately.
* Most humans can solve.
* Does not rely on the type of CAPTCHA being new to the attacker.

我自己在解决验证码(至少是基于图像的验证码)方面真的很糟糕,对我来说,感觉当前的实现不符合上面的“规范”。许多广泛使用的实现实际上可以通过软件解决。我和大多数人一样,无法解决这些问题……(主观我知道)

我可能会尝试实施一个系统,在该系统中,用户可以将那些我会删除的内容标记为垃圾邮件。是的,如果没有管理员本人的任何输入,垃圾邮件将是可见的,但不会持续很长时间。

想想看,SO 的声誉和投票系统非常有效地减少了垃圾邮件的影响,因为问题被关闭并被否决 => 情人可见度

【讨论】:

【参考方案6】:

Phil Haacks invisible captcha 之类的呢?

【讨论】:

【参考方案7】:

查看 defensio.com。它使用贝叶斯过滤(如邮件过滤器)。这很有效。这是一项免费的网络服务。

免责声明:过去曾在那里工作过。

【讨论】:

以上是关于可以做些啥来防止类似论坛的应用程序中的垃圾邮件?的主要内容,如果未能解决你的问题,请参考以下文章

我可以做些啥来提高 Lua 程序的性能?

我可以做些啥来存储类的实例并在反应应用程序的上下文中管理状态

查询很慢,我可以做些啥来改进?

我可以做些啥来加快 S3 上传/更新?

在尝试将我的 iOS 应用程序提交到 App Store 时,我可以做些啥来克服下面列出的多个错误?

我可以做些啥来加快这个 SQL 查询的速度?