Captcha无法阻止垃圾邮件提交

时间:2012-08-06 21:14:17

标签: captcha spam spam-prevention

我已经在评论表中添加了验证码及其工作,但我仍然不断收到垃圾邮件。我还可以使用其他任何方法吗?谢谢你的帮助

5 个答案:

答案 0 :(得分:4)

免责声明:我拥有SpamCaptcher,但仍会在这里保持公正

您将在CAPTCHA中看到的结果在很大程度上取决于3个主要因素:

  1. 您如何实施CAPTCHA
  2. 您使用的验证码类型
  3. 垃圾邮件发送者通过向您的网站发送垃圾邮件获得的投资回报
  4. CAPTCHA实施

    在我们讨论您使用的CAPTCHA类型是否适合您的需求(或者您是否应该使用它)之前,请先检查它是否正确实施。如果它没有被验证服务器端,可以通过关闭JavaScript或禁用Flash(或更改任何其他客户端配置)来绕过,或者答案存储在客户端,那么实现需要修复。当然,无论谁制作你使用的CAPTCHA都应该这样做,所以你不必担心这个问题。注意:我强烈建议您不要使用自己的CAPTCHA解决方案。

    CAPTCHA类型

    大多数人认为CAPTCHAs是他们必须破译的扭曲文本的图片。虽然这肯定是CAPTCHA(当前最受欢迎的)的一种实现,但它并不是唯一的实现。虽然这种扭曲的基于文本的CAPTCHA在一段时间内取得了成功,但OCR的改进使得垃圾邮件发送者可以通过自动化工具解决这些问题。为了解决这个问题,制作CAPTCHA的人们让他们更难阅读,现在我们陷入了这样的境地,即当人类越来越挣扎时,计算机越来越好地解决它们。最近,CAPTCHA提供商出现了一系列不同类型的CAPTCHA:

    • 图像识别
    • 形象定位(我个人最喜欢的)
    • 游戏
    • 视频理解
    • 音频理解

    此外,人们已经放弃了对CAPTCHA的严格定义,并提出了一些其他可能适合您的解决方案,具体取决于您的网站(下一节将详细介绍)。

    当您选择CAPTCHA类型时要记住的一些事情是某些人可能会遇到某些类型的问题。优良作法是确保有视力障碍的人和有听力障碍的人仍能解决CAPTCHA问题。同样重要的是要注意CAPTCHA的强度与最弱点一样强。因此,例如,如果CAPTCHA的视觉部分坚如磐石但音频组件较弱,那么安全性就会很弱。实际上,在这种情况下,您只会使用CAPTCHA打扰大多数合法用户,同时为垃圾邮件发送者提供一种简单的方法来解决它。

    垃圾邮件投资回报率

    根据您网站的性质,垃圾邮件发送者可能会有很大或小的动机来向您发送垃圾邮件。如果激励很小,那么他们可能不会编写自定义解决方案来向您发送垃圾邮件。但是,如果激励很大,那么他们很有可能为您的网站编写自定义解决方案。

    让我们从小激励案例开始吧。如果您属于这一类别,那么我建议选择尚未广泛采用的CAPTCHA(但仍然是安全的),并且对您的用户来说非常容易(如果不是透明的话)。蜜罐和Hashcash是透明解决方案的示例。在SpamCaptcher,我们提供了一个名为Proof-of-Work的解决方案。

    另一方面,如果您的网站对垃圾邮件发送者具有较高的投资回报率,那么您将需要更高的安全性。在这种情况下,您显然希望选择具有强大安全性并仍然提供良好用户体验的解决方案。但是,如果您网站的投资回报率足够高,那么您可能会遇到人类CAPTCHA求解器。只有CAPTCHA不能保护你免受伤害。但是,(另一个无耻的插件),SpamCaptcher有它的TrustMe帐户解决方案。

    <强>结论

    您确实需要选择适合您需求的CAPTCHA,这意味着您需要在安全性和用户友好性之间找到适当的平衡点。我明显推荐SpamCaptcher并认为我们的Rotational Image CAPTCHA对你来说是一个很好的解决方案,但你显然需要决定什么是最适合你的网站。以下是您可能需要考虑的几个CAPTCHA提供商:

    • SpamCaptcher
    • 自然技术
    • 验证码

    希望有所帮助!

答案 1 :(得分:3)

验证码已broken for some time

没有完美的解决方案来阻止垃圾评论。

您可以要求用户在发表评论前进行注册。虽然垃圾邮件也可以打破这个问题,但对于他们来说解决问题却是一个难题。这个解决方案也不鼓励真人参与。

您可以自动将未注册用户的评论标记为在发布之前需要审核,并自行审核或通过社区进行审核(就像Stack Overflow对某些内容(例如编辑)一样)。您可能还想标记尚未建立更多可信度的“新”用户的评论。

您应该创建IP阻止列表。您的大部分垃圾邮件都来自合法用户 使用的受感染计算机。如果您阻止一个IP,另一个僵尸计算机很可能会尝试连接以恢复工作。另一方面,您可能会阻止僵尸计算机的人类用户使用您的网站。

答案 2 :(得分:2)

On(千个原因之一)为什么你的Captcha可能不起作用:一个被注意到的技术是,黑客会让他们的机器人将Captcha的屏幕截图发送回基地,而一个最低工资的人将会填充它出。 (Erik J的链接详细说明了这一点。)

更好的解决方案似乎围绕网站结构而非实施。

你可以特别浏览一下这个网站 - 限制特权的技巧,直到用户表明自己是你小社会的功能部分。把责任放在特权之前,实质上就是这样。

XKCD, of course, says it well

答案 3 :(得分:1)

不幸的是,CAPTCHA面临挑战。去年的一项研究发现,CAPTCHAs可能不像以前那样可靠地防止计算机识别。该研究报告可在http://homepages.cs.ncl.ac.uk/jeff.yan/google.pdf获得。

我的公司与客户合作阻止社交垃圾邮件。查看我们关于解决社交垃圾邮件问题的答案的博客文章。在我们的帖子中,我们强调您可以构建的策略(我们也提供)以增强您的站点防御垃圾邮件的能力。 http://www.impermium.com/blog/2012/02/03/answers-to-developer-questions-on-fighting-social-spam/

答案 4 :(得分:1)

除了Captcha之外,我建议添加额外的措施。

在我的情况下,我经历了添加隐藏字段 - &gt;

<form action="/submit.php" method="post">
    <p>Your name: <input type="text" name="name" /></p>
    <p>Your email: <input type="text" name="email" /></p>
    <p class="antispam">Leave this empty: <input type="text" name="url" /></p>
    <p><textarea name="message"></textarea></p>
    <p><input type="submit" value="Send" /></p>
</form>

.antispam { display:none;}

然后在服务器端验证它 - &gt;

<?php 
// if the url field is empty 
if(isset($_POST['url']) && $_POST['url'] == ''){
     // then send the form to your email
} 
// otherwise, let the spammer think that they got their message through
?>

上面的代码示例摘自这篇有用的文章:http://www.nfriedly.com/techblog/2009/11/how-to-build-a-spam-free-contact-forms-without-captchas/ 来自Nathan Friedly

在我的网站中,我实施了上述方法和Google的reCaptcha - 。

到目前为止工作正常。