Rails中有很多驗證碼插件,還有許多類型的用於防止垃圾郵件和氾濫的解決方案。所以這不僅僅是Rails的問題。rails - 選擇驗證碼插件
讓我們來看看什麼類型的插件做,我們有:
1.經典形象的captcha(zendesk's Captcha,Simple_captcha,Validates_captcha,winton's Captcha,Raptcha)。
正面:
- 可以有效地防止自動解密(不知道Simple_captcha,但似乎雙方的Zendesk的和通泰的驗證碼不做到這一點,因爲他們使用預先生成的圖像(而不是按需),所以我們可能會在該圖像上學習垃圾郵件機器人)。
負:
- 要求數據庫表(至少簡單的驗證碼不那麼糟糕,但是他們清理使用後?)。
- 要求RMagick或類似(對我來說不是那麼實際,因爲我已經在我的網站上)。
- 手動解密失敗(我知道$ 2/1000張圖片)。
- 惱人的用戶,可以傷害轉換率。
2. ReCaptcha(Recaptcha,Rack-recaptcha)。
正面:
- 可以有效地防止自動解密。
- 不需要Rmagick和數據庫表。
負:
- 進行API,調用第三方網站。
- 手動解密失敗。
- 比以前更煩人了。
3.蜜罐(負的驗證碼,Trap_door,Reverse_captcha,蜜罐-驗證碼,Bouncy_bots,invisible_captcha)。
正面:
- 用戶並不知道驗證碼presense。
- 不需要Rmagick和數據庫表。
負:
- 可能無法自動解密(有沒有可以識別這個插件的任何漫遊?)。
- 手動解密失敗。
4.基於文本的(Humanizer,Brain_buster,Gotcha)。
正面:
- 不要求Rmagick和數據庫表(除了Brain_buster的)。
負:
- 可能無法自動解密。
- 手動解密失敗。
- 有點煩人(可以本地化)。
5.其他(Acts_as_snook)
正面:
- 用戶並不知道驗證碼presense。
- 不需要Rmagick和數據庫表。
負:
不知道有沒有什麼,因爲這是非常不尋常的。但是我認爲這可能會在洪水氾濫的情況下造成問題,因爲在某些時候它可能需要郵局的節制。
6.類似Akismet的解決方案(不知道它們的效率)。
正面:
- 用戶並不知道驗證碼presense。
- 不需要Rmagick和數據庫表。
負:
- 進行API,調用第三方網站。
- 將用戶的詳細信息提供給第三方網站(非常非常糟糕)。
我也應該對我的網站說幾句話。用戶只能在ajax請求(例如將東西放入購物車之後)後才能看到受保護的表單。現代的機器人是否有能力做Ajax請求和存儲Cookie?
我有一個Rails應用程序託管在Heroku上什麼,我想要使用captcha進行用戶註冊表單。生產中哪種解決方案可行?我無法在Heroku上運行RMagick? – Myna 2012-08-08 15:22:19
我已經使用簡單的邏輯從垃圾郵件過濾軌道表單,並且在多個生產應用程序上運行良好。這就像蜜罐一樣,但有點不同:)最近我把這個插件移動到gem [protected_form](https://github.com/KELiON/protected_form),檢查出來。很高興有反饋意見。 – 2014-05-14 15:03:08