2012-02-28 30 views
0

我試圖用this創建一個蜜罐字段,但我不確定如何實現它。表單如何知道使用蜜罐的哪個字段以及我在哪裏指定標籤?下面是我用於該領域的代碼,但是當我運行應用程序的形式出現可見:在註冊表中創建一個蜜罐

= form_for(:invitation, :url => request_invite_path, :html => {:id => 'login_form', :honeypot => true}) do |form| 
     = form.text_field :email, :size => nil 
     = form.text_field :honeypot #This field was created to store the honeypot input 
     %button{:type => "submit"} Request Invite 

這種蜜罐被登記表格只要求提供的電子郵件地址,然後有上使用是隱藏的額外的蜜罐領域。我目前有一個邀請服務,所以當人們輸入他們的電子郵件時,邀請被創建並且我可以接受或拒絕。我想要做的是擺脫邀請功能,但我想我可以將此邀請功能與蜜罐字段結合使用,以阻止漫遊器註冊。

有沒有辦法讓我跳過模型,仍然使用蜜罐字段接受或拒絕邀請?我實際上並不需要存儲蜜罐數據,但我需要用它來決定是否接受邀請。

因此,它應該像這樣工作:

  1. 用戶到達着陸頁
  2. 用戶可以看到由
    1. 電子郵件地址輸入框是隱藏
    2. 蜜罐領域的登記表
  3. 如果一個bot註冊它就會填入蜜罐,所以當 邀請正在創建中,我可以自動接受那些不會填充 的蜜罐,那些做的將被拒絕。

還有一件事,我該如何測試蜜罐領域,看看它的工作?我想填寫它,看看我的代碼是否正在做它應該做的。

+0

相關:[更好的實現蜜罐(表格反垃圾郵件)](http://stackoverflow.com/questions/36227376/better -honeypot-implementation-form-anti-spam/36227377) – 2016-03-31 20:19:11

回答

0

所以從我得到什麼,你有哪些用戶必須輸入一個電子郵件,並有一個蜜罐過濾的機器人着陸頁的形式拒絕。

  1. 如果您正在使用的寶石,你會看到,你不需要自己蜜罐字段添加 到窗體。當您在html選項中使用 :honeypot => true實現它時,它會自動創建一個隱藏文本字段,其中包含適當的可訪問標籤。

  2. 如果您使用的是過濾機器人蜜罐,當一個機器人提交 形式向控制器,並填寫了兩個電子郵件和 蜜罐,你只需要添加一個before_filter :protect_from_spam。如果 您想要執行該功能中的任何特殊功能,則可以在控制器中覆蓋其默認值 。

  3. 可以通過簡單地通過從無到內聯改變的CSS蜜罐的display: (Firefox上與 螢火蟲例如)在瀏覽器檢查該元件進行測試。這樣你就可以填寫 這個字段,看看你在做什麼時沒有改變 的代碼。

1

對不起你不明白我以前的答覆,我會改換

所以從我得到什麼,你有哪些用戶必須輸入一個電子郵件的登陸頁的形式,有一個蜜罐來過濾機器人。

  1. 如果你使用那個gem,你會發現你不需要把你自己的蜜罐字段添加到表單中。 (我不完全看到使用寶石的目的,但無論如何..)

  2. 當你添加一個文本字段的形式,並希望它是不可見的,你需要讓它隱身自己(這就是文本字段的工作原理)

  3. 如果您使用蜜罐來過濾機器人,當機器人將表單提交給控制器,並填寫了電子郵件和蜜罐時,您只需添加一個before_filter :check_honeypot,然後該函數檢查蜜罐字段是否爲空,如果不是,那麼你有一個機器人,對吧?所以自動

+0

更好的謝謝:),但仍然,對不起,我是一個noob,我很困惑如何實現那個寶石。我現在還不能推出自己的產品,加上我的第一款寶石。 gem說要實現蜜罐,我需要做的就是像上面這樣的代碼:「honeypot => true」,那麼不應該隱藏這個字段(或者根據它的工作原理來隱藏它)?或者如果你有關於如何推出自己的建議,那也可以。如果我不需要蜜罐文本字段,我不存儲蜜罐信息,那麼我傳遞給控制器​​做什麼檢查? – GiH 2012-02-29 16:42:22

+0

另外,我如何測試該領域?如果它的工作,它的隱藏哈哈 – GiH 2012-02-29 17:06:00

+0

好,關於該領域,無論是如果您使用該寶石或自己添加隱藏的領域,只需檢查服務器運行時瀏覽器的頁面,例如與螢火蟲工具。在字段中添加一些文本,只需從中取出'display:none'並開始輸入 – 2012-02-29 20:04:52