recaptcha.net 是不是有任何替代品来阻止垃圾邮件? [关闭]

Posted

技术标签:

【中文标题】recaptcha.net 是不是有任何替代品来阻止垃圾邮件? [关闭]【英文标题】:Are there any alternatives to recaptcha.net, for stopping spam? [closed]recaptcha.net 是否有任何替代品来阻止垃圾邮件? [关闭] 【发布时间】:2010-10-03 00:44:26 【问题描述】:

我公司的一位比我排名更高的成员拒绝在他的网站上使用 recaptcha.net 来阻止来自公共表单的垃圾邮件。他认为任何访问我们网站的人都很难输入他们的信息,因为图灵测试“非常难以阅读”。

有没有其他方法可以替代这种方法?不包含这些难以阅读的图像?

(好吧,愚蠢的问题......如果由我决定,我们会使用 recaptcha,因为地球上的其他人都这样做......但我只是想我会检查一下。)

另外,使用由 Javascript 设置并随后在服务器上检查的隐藏字段真的是阻止垃圾邮件的好方法吗?

我自己并不真正相信它是...因为有各种各样的 javascript 引擎不在浏览器中运行但可以运行 Javascript(Rhino 等...),可以很容易地用于阻止 JS/服务器端反垃圾邮件方法。

【问题讨论】:

【参考方案1】:

CAPTCHA 会减少您的垃圾邮件,但不会消除它。人们得到报酬来破译这些字形。有些网站将呈现给他们的字形用于他们自己的网站,因此一些倒霉的访问者会破译它。

只是让您知道这不是一个完美的解决方案。

基于在问题出现之前不要解决问题的原则:垃圾邮件是您网站上的一个重大问题吗?为了不惹恼您的客户/访客,有话要说。即使在这里,我有时也需要进行一些编辑,并且通常在我需要进行的最后一次编辑时,我会得到令人讨厌的“我是人类”测试。很烦人。

人们提出了各种其他方法来解决这个问题。我读过一篇关于猫和狗的旧照片,你必须对其进行分类,因为显然在美国有一个数据库,其中有 30 多万张用于被遗弃的动物或类似的东西。这个或任何被广泛使用的东西都会被打败。

网站上垃圾邮件的最大问题是如果您使用广泛使用的软件(例如 phpBB)。您最好的选择是进行足够的修改以击败开箱即用的脚本。无论如何,您可能会成为目标,但垃圾邮件是一种高容量低成功率的游戏。在您的网站占据大量流量之前,没有真正的理由来定位您的网站。

另一件值得一提的是可以用来击败脚本垃圾邮件的技术:

使用 Javascript 编写关键内容,而不是将其包含为静态 html。这更难处理(但并非不可能); 重命名和/或重新排序用户名和密码等关键字段。例如,生成用户名和密码表单字段并将它们存储为会话变量,以便它们仅适用于该用户。然后要求用户使用登录表单访问页面(而不是编写可以直接发布的表单响应的脚本); 混淆表单提交。可以在 jQuery 和类似框架中执行的不显眼的 Javascript 之类的事情让这变得非常容易; 包含验证码图像和字段框,然后不显示它们(在 CSS 中显示:无)。你会混淆解析器。

【讨论】:

对于今天登陆这里的任何人,对于重命名/重新排序关键字段(要求用户访问该页面)的基本原理,有一个更简单、更标准的解决方案。事实上,它内置在大多数框架中:CSRF 保护。它涉及在加载表单时在服务器上生成一个随机令牌并将其发送到隐藏字段中的客户端。然后,当提交表单时,服务器会检查以确保 CSRF 令牌存在、匹配并且没有超时。【参考方案2】:

对于不太受欢迎的网站,最好的方法是插入一个隐藏字段并检查它。如果它被填满,那么它就是垃圾邮件,因为这些机器人只会填写他们找到的任何字段。

【讨论】:

谢谢,我喜欢这种方法! 你的意思是 'visibility:hidden' 还是 type='hidden'?我假设是前者,但不确定你想到的是哪个。 @johnsnails:任何 CSS。 display:none; 可能是最容易使用的。 一些垃圾邮件机器人通过解析 CSS 对 visibility: hiddendisplay: none 变得很聪明,因此最好使用 JavaScript 隐藏该字段或将其放置在屏幕左边缘之外。无论哪种方式,请务必包含一个标签,要求实际人类将其留空,因为智能垃圾邮件机器人和愚蠢的辅助技术仅通过是否有人阅读文本来区分。【参考方案3】:

您可能想查看Akistmet 和/或Mollom。

【讨论】:

Mollom 很酷,因为只有看起来像垃圾邮件的提交才会提示验证码。【参考方案4】:

添加一个非标准的必填字段。例如,要求选中一个显示“检查我”的复选框。这将击败任何不是为您的站点量身定制的自动化脚本。请记住,它不会击败专门针对您网站的任何人。

【讨论】:

【参考方案5】:

一个简单的方法是显示一个“橙色”的图像,并要求用户输入。

【讨论】:

【参考方案6】:

是的,recaptcha 会减少垃圾邮件,但也会减少转化!您应该考虑使用 XVerify 进行实时数据验证。使这些注册成为垃圾邮件的是虚假数据,XVerify 将通过验证用户的电子邮件地址、电话号码和实际地址来确保您输入的信息是真实数据。如果信息是假的,用户不能点击继续!简单!

【讨论】:

【参考方案7】:

我曾经认为 CAPTCHA 很好,并在公共表单上使用了 reCAPTCHA。我注意到垃圾邮件提交消失了,但我也注意到真实提交也大幅减少。

现在我不相信验证码。他们工作,但我觉得他们弊大于利。在不得不在其他网站上输入难以阅读的验证码后,我明白为什么我没有得到尽可能多的真实提交。用户必须采取的与其主要目标无关的任何输入都是一种威慑。

我通常使用几种方法来防止垃圾邮件,这取决于我期望表单中的内容类型。我创建了扫描 cmets 并根据内容将它们标记为垃圾邮件的服务器方法。它工作正常,但我不是垃圾邮件专家,所以效果不佳。我希望有人会做一个这样的网络服务。

我觉得 Evan 的链接很有趣!

【讨论】:

【参考方案8】:

我听说的另一种方法,基本上扩展了 javascript 的思想,是让客户端的浏览器执行可配置的 JavaScript 计算。

它已作为 Microsoft AJAX 控制工具包的一部分在 NoBot 示例中实现 http://www.asp.net/AJAX/AjaxControlToolkit/Samples/NoBot/NoBot.aspx 了解更多有关其工作原理的详细信息。

【讨论】:

【参考方案9】:

我找到了一个名为Are You A Human 的替代方案。并不是说程序员应该凭直觉行事,而是从一开始它就显得不安全。因为你玩的游戏很有趣,所以我决定试一试。它对我不起作用。主机可能没有为此设置。这是我检查的最后一件事。

如果其他人尝试过,我想知道它是如何工作的。

【讨论】:

这个验证码服务好像只有英文。【参考方案10】:

我以前用过Confident Captcha,它很容易设置和运行。此外,在我管理的论坛上,我还没有收到任何垃圾邮件。

它不是基于文本的验证码,而是使用类似于 picaptcha 的图像。我之前尝试过“你是人类吗”,这绝对是一个有趣的概念。

【讨论】:

【参考方案11】:

找到一个名为 NuCaptcha 的显示移动字母...

【讨论】:

【参考方案12】:

8 年后...

我一直在寻找 Google 的 reCaptcha 的替代品,它不会破坏用户体验、跟踪用户等,并找到了这个宝石:Coinhive Captcha。

它通过在后台挖掘Monero硬币(哈希计数可调整)并提供服务器端API来验证它。应该注意的是 - 根据要解决的所选哈希计数 - 它可能会很慢,特别是在移动设备上。

【讨论】:

以上是关于recaptcha.net 是不是有任何替代品来阻止垃圾邮件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android 聊天是不是有任何 Openfire smack 替代方案?

.NET Core 的 MiniProfiler 是不是有任何可行的替代方案?

对于这种情况,each() 是不是有任何替代方法

GOF 单例模式是不是有任何可行的替代方案?

在 PrepareStatement 中设置参数是不是有任何基于通用的替代方法

Max() 需要很长时间是不是有任何替代方法来编写此查询?