我已经在评论表单中添加了验证码及其工作,但我仍然不断收到垃圾邮件。我还有其他方法可以使用吗?谢谢您的帮助
5 回答
免责声明:我拥有 SpamCaptcher,但仍会在这里保持公正
您使用 CAPTCHA 看到的结果在很大程度上取决于 3 个主要因素:
- 您如何实施验证码
- 您使用的验证码类型
- 垃圾邮件发送者通过向您的网站发送垃圾邮件获得的投资回报
验证码实施
在我们讨论您使用的 CAPTCHA 类型是否适合您的需求(或者您是否应该使用一种)之前,首先检查它是否正确实施。如果它没有在服务器端进行验证,可以通过关闭 JavaScript 或禁用 Flash(或更改任何其他客户端配置)来绕过它,或者答案存储在客户端,则需要修复实现。当然,无论是谁制作了您使用的 CAPTCHA,都应该制作它,这样您就不必担心这一点。注意:我强烈建议您不要推出自己的验证码解决方案。
验证码类型
大多数人认为验证码是他们必须破译的扭曲文本的图片。虽然这肯定是 CAPTCHA 的一种实现(也是目前最“流行的”),但它并不是唯一的一种。虽然这种基于扭曲文本的验证码成功了一段时间,但 OCR 的改进使得垃圾邮件发送者可以使用自动化工具解决这些问题。为了解决这个问题,制作验证码的人让它们更难阅读,现在我们陷入了这样一种境地:计算机在解决这些问题方面做得越来越好,而人类却越来越挣扎。最近,提供一系列不同类型的 CAPTCHA 的 CAPTCHA 提供商蓬勃发展:
- 图像识别
- 图像方向(我个人最喜欢的)
- 游戏
- 视频理解
- 音频理解
- 等等
此外,人们已经摆脱了 CAPTCHA 的严格定义,并提出了一些其他可能对您有用的解决方案,具体取决于您的站点(下一节将详细介绍)。
选择 CAPTCHA 类型时要记住的一些事情是,某些人可能会在某些类型上遇到困难。确保视力障碍者和听力障碍者仍然可以解决 CAPTCHA 是一种很好的做法。同样重要的是要注意,CAPTCHA 仅与其最弱点一样强大。因此,例如,如果验证码的视觉部分坚如磐石,但音频部分很弱,那么安全性就会很弱。事实上,在这种情况下,您只会用 CAPTCHA 来打扰大多数合法用户,同时为垃圾邮件发送者提供一种绕过它的简单方法。
垃圾邮件投资回报率
根据您网站的性质,垃圾邮件发送者可能有很大或很小的动机向您发送垃圾邮件。如果激励很小,那么他们很可能不会编写自定义解决方案来向您发送垃圾邮件。但是,如果激励很大,那么他们很有可能会为您的网站编写自定义解决方案。
让我们从小型激励案例开始。如果您属于这一类,那么我建议您选择尚未广泛采用(但仍然安全)并且对您的用户来说非常容易(即使不透明)的 CAPTCHA。蜜罐和 Hashcash 是透明解决方案的示例。在 SpamCaptcher,我们提供了一种称为Proof-of-Work的解决方案。
另一方面,如果您的网站对垃圾邮件发送者来说投资回报率很高,那么您将需要更高的安全性。在这种情况下,您显然希望选择具有强大安全性且仍能提供良好用户体验的解决方案。但是,如果您网站的投资回报率足够高,那么您可能会遇到人工验证码求解器。仅 CAPTCHA 并不能保护您免受他们的侵害。然而,(另一个无耻的插件),SpamCaptcher 有它的 TrustMe Account 解决方案。
结论
您确实需要选择适合您需求的验证码,这意味着您需要在安全性和用户友好性之间找到适当的平衡点。我显然推荐 SpamCaptcher,并认为我们的Rotational Image CAPTCHA对您来说是一个很好的解决方案,但您显然需要决定什么最适合您的网站。以下是您可能需要考虑的几个 CAPTCHA 提供商:
- 垃圾邮件捕捉器
- 自信的技术
- 验证码
希望有帮助!
验证码已经被破解了一段时间。
没有完美的解决方案来防止垃圾评论。
您可以要求用户在发表评论之前进行注册。虽然垃圾邮件机器人也可以打破这一点,但对他们来说这是一个更难解决的问题。这种解决方案也阻碍了真人的参与。
您可以在发布之前自动将来自非注册用户的评论标记为需要审核,然后您自己或通过社区进行审核(就像 Stack Overflow 对某些内容(例如编辑)所做的那样)。您可能还想标记尚未建立多少可信度的“新”用户的评论。
您不应创建IP 阻止列表。您的大部分垃圾邮件都来自合法用户也使用的受感染计算机。如果您阻止一个 IP,另一台僵尸计算机很可能会尝试连接以恢复工作。另一方面,您很可能会阻止僵尸计算机的人类用户使用您的站点。
关于(一千个原因之一)您的验证码可能不起作用的原因:一种被注意到的技术是,黑客会让他们的机器人将验证码的屏幕截图发送回基地,然后由最低工资的人来填写。(Erik J 的链接对此进行了详细说明。)
更好的解决方案似乎围绕网站结构而不是实施。
您可以特别查看这个网站 - 诸如限制权限之类的技术,直到用户显示自己是您的小社会的功能部分。本质上,将责任置于特权之上。
我建议在验证码之外添加额外的措施。
就我而言,我尝试添加一个隐藏字段->
<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;}
然后在服务器端验证它->
<?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-。
到目前为止工作正常。
不幸的是,验证码有它的挑战。去年的一项研究发现,验证码在阻止计算机识别方面可能不像以前那样可靠。该研究可在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/。