2008-09-19 70 views

回答

1

編輯:

看起來BranBuster死了(這是幾年前)。但我很喜歡: https://github.com/matthutchinson/acts_as_textcaptcha

我是名爲「BrainBuster」的rails插件的粉絲。這是一個基於邏輯的CAPTCHA,我認爲它比「鍵入這些詞」更可取,因爲有時候會破譯這些詞令人討厭......很容易看「什麼是10減3?」。並拿出答案。因人而異:

https://github.com/rsanheim/brain_buster

+0

該鏈接無效。 – gotqn 2013-04-17 20:43:05

0

垃圾郵件是公平的。它並不在乎你在幕後運行什麼。

因此,通過擴展,在Rails上運行良好的東西與適用於PHP,ASPNET等的東西是一樣的。請看Akismet以及各種「業力」反bot工具。

對於一些有現有的ruby端口,但你可能不得不重寫一些任務。

0

對於創建賬戶,您可能需要使用Captchas。我個人並不喜歡他們,我不認爲他們是有效的。但是,如果你使用它們,我強烈建議你使用服務而不是試圖掀起你自己的。想到重新驗證碼。不知道是否有Ruby或Rails的包裝。

爲了防止垃圾郵件內容,但是,我強烈建議Defensio(免責聲明:我曾在那裏工作過)。它使用最先進的垃圾郵件過濾技術,如用於電子郵件的過濾技術,如貝葉斯過濾。有很多博客平臺的插件,包括Mephisto(用Rails製作)。這個API很簡單,您可以在幾個地方查看如何使用Ruby的工作示例。

6

使用庫:你(幾乎)總是更好挪用來自那些在子域上比你更好的人的代碼。 Akismet背後的WordPress人們已經忘記了更多關於博客垃圾郵件的知識,而我知道,我曾經是一位電子郵件反垃圾郵件研究人員。您可能對Rails integration plugin for Akismet感興趣。

防禦多元化:垃圾郵件是一個古怪的問題,因爲越受歡迎的對策變得越糟糕。因此,特別是對於低調的網站,通過編寫簡單的一次性絆網,您可以獲得令人厭惡的良好效果。我不會給你任何代碼複製/粘貼,因爲它違背了excercize的目的:採取一種全球唯一的對策​​。

一個簡單的例子是有一個隱藏的表單元素,它以一些隨機化的字符串開始,並且被Javascript代碼設置爲已知的良好值。然後你反彈任何不具備良好價值的東西。這會阻止未實施Javascript的客戶端,其中包含絕大多數垃圾郵件腳本。有一些問題,當然,因爲一些合法的客戶端也會阻止Javascript - 但是實際上,如果您使用Rails,我猜你是在假設cookie已經啓動而Javascript運行。

+0

鏈接應該是http://github.com/joshfrench/rakismet - 他更改了他的github用戶名 – 2010-07-01 16:05:03

3

我還建議ReCAPTCHA技術,不僅因爲它是你沒有管理一個高度可靠的服務,因爲它有兩個普通貨物 - 通過的ReCaptcha團隊中描述的OCR任務,在教人們如何驗證工作方面取得的進展,降低了放棄率。