rails - 选择captcha插件

时间:2011-03-15 17:24:17

标签: ruby-on-rails plugins captcha spam flooding

Rails中有很多验证码插件,还有许多类型的防止垃圾邮件和泛滥的解决方案。所以这不仅仅是Rails的问题。

让我们看看我们有哪些类型的插件:

1。经典图片验证码zendesk's Captcha,Simple_captcha,Validates_captcha,winton's Captcha,Raptcha)。

阳性:

  • 可以有效防止自动解密(不确定Simple_captcha,但似乎zendesk和winton的验证码都没有实现,因为它们使用预先生成的图像(而不是按需),所以我们可能的垃圾邮件可以在那些图像上学习机器人。)

负:

  • 需要DB表(至少是简单的Captcha。不是很糟糕,但在使用后是否要清理它?)。
  • 需要RMagick或类似物品(对我来说不是那么实际,因为我已经在我的网站上拥有它)。
  • 手动解密失败(我知道2美元/ 1000张图片)。
  • 对用户很烦,可能会影响转化率。

2。 ReCaptcha (Recaptcha,Rack-recaptcha)。

阳性:

  • 可以有效防止自动解密。
  • 不要求使用Rmagick和DB表。

负:

  • 向第三方网站发出api-calls。
  • 手动解密失败。
  • 比以前更烦人。

第3。蜂蜜罐(Negative-captcha,Trap_door,Reverse_captcha,Honeypot-captcha,Bouncy_bots,invisible_captcha)。

阳性:

  • 用户不知道验证码存在。
  • 不要求使用Rmagick和DB表。

负:

  • 可能无法自动解密(有没有可以识别此插件的机器人?)。
  • 手动解密失败。

4。基于文本(Humanizer,Brain_buster,Gotcha)。

阳性:

  • 不要求使用Rmagick和DB表(Brain_buster除外)。

负:

  • 可能无法自动解密。
  • 手动解密失败。
  • 有点烦人(可以本地化)。

5。其他(Acts_as_snook)

阳性:

  • 用户不知道验证码存在。
  • 不要求使用Rmagick和DB表。

负:

不知道是否有,因为它非常不寻常。但我认为在洪水泛滥的情况下可能会出现问题,因为它可能需要在某些时候进行调节。

6。类似Akismet的解决方案(不知道它们的效率)。

阳性:

  • 用户不知道验证码存在。
  • 不要求使用Rmagick和DB表。

负:

  • 向第三方网站发出api-calls。
  • 将用户的详细信息发送到第三方网站(非常非常糟糕)。

我也应该对我的网站说几句话。用户只有在ajax请求之后才会看到受保护的表单(例如,在将某些内容放入购物车之后)。现代机器人是否有能力执行ajax请求和存储cookie?

2 个答案:

答案 0 :(得分:6)

Flooding与垃圾邮件不同。你绝对应该将速率限制的逻辑构建到你的应用程序中,你可以使用验证来检查用户是否在过去的15分钟内没有放置超过2个订单。

关于验证码,您选择的任何插件最有可能都很棒。我不认为必须安装RMagick作为正面或负面,它真的不是很难工作。如果是我选择的话,我的第一直觉就是重新接触,这对他们来说是最不讨厌的。

垃圾邮件是另一个问题,它通常由可以绕过验证码的人类用户输入。 Akismet非常适合捕捉垃圾邮件,一定要看看它,你可以将它与recaptcha一起使用。

最后,现代机器人非常复杂。比我们任何人想象的要复杂得多。它们可以完全自动化浏览器,使用OCR读取验证码文本并生成垃圾内容,甚至可以绕过最复杂的过滤器。也就是说,这不是关于“阻止所有垃圾邮件/机器人”,而是关于使进入门槛足够高,以至于对于临时用户来说这是不值得的。

答案 1 :(得分:5)

对现有插件的分析很好。

现代机器人非常复杂,他们的开发人员付出了很多,所以他们总是试图绕过最新的防御。出于这个原因,我认为坚持使用积极维护和工作的选项是很好的,比如ReCaptcha。我还认为用户了解界面并且知道您正在采取措施保护他们的数据时感到安全。

我不得不筛选项目的所有rails captcha选项,并为我的客户编写了一个示例应用程序来测试和试用。 simple-captcha-demo.heroku.com

它们都非常易于使用和设置,我喜欢使用heroku作为测试床来快速设置,并让客户测试它。 我还在我的博客RailsPerformance.com

上写下了我的一些经验和想法

可能有新的插件,它总是很好看看趋势是什么 www.ruby-toolbox.com