Rails中有很多验证码插件,还有许多类型的防止垃圾邮件和泛滥的解决方案。所以这不仅仅是Rails的问题。
让我们看看我们有哪些类型的插件:
1。经典图片验证码(zendesk's Captcha,Simple_captcha,Validates_captcha,winton's Captcha,Raptcha)。
阳性:
负:
2。 ReCaptcha (Recaptcha,Rack-recaptcha)。
阳性:
负:
第3。蜂蜜罐(Negative-captcha,Trap_door,Reverse_captcha,Honeypot-captcha,Bouncy_bots,invisible_captcha)。
阳性:
负:
4。基于文本(Humanizer,Brain_buster,Gotcha)。
阳性:
负:
5。其他(Acts_as_snook)
阳性:
负:
不知道是否有,因为它非常不寻常。但我认为在洪水泛滥的情况下可能会出现问题,因为它可能需要在某些时候进行调节。
6。类似Akismet的解决方案(不知道它们的效率)。
阳性:
负:
我也应该对我的网站说几句话。用户只有在ajax请求之后才会看到受保护的表单(例如,在将某些内容放入购物车之后)。现代机器人是否有能力执行ajax请求和存储cookie?
答案 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