2012-01-05 18 views
3

全部, 我有我的網站上的留言板功能,我不斷收到垃圾郵件。我使用jquery驗證器在前端進行驗證,並詢問數學問題以確保它不是垃圾郵件工具。我還有一個隱藏字段,它在我的POST請求中生成一個隨機數(一個Form Key)。防止垃圾郵件發佈網站上的登錄表格不安全

在後端我驗證表單鍵,我也檢查一些選擇字功能的值,我也說ifset($ _ POST)。我仍然不斷收到垃圾郵件非常糟糕,不知道我怎麼能避免這一點。其他則讓人們註冊該網站,我怎樣才能防止所有的垃圾郵件?任何額外的建議,非常感謝!

回答

5
  1. 使用更好的驗證碼,比如Google的Re-Captcha。
  2. 創建一個你用CSS隱藏的蜜罐。機器人通常填寫所有領域,所以如果這個隱藏的領域被填充,你知道它是一個機器人。
+0

哦,我也喜歡蜜罐的想法。會從來沒有想過這個。 – James 2012-01-05 23:28:54

+1

蜂蜜罐+1。 – 2012-01-05 23:34:14

+0

@dqhendricks就像一個額外的FYI,我仍然得到垃圾郵件,所以我決定實際上把CSS放在jQuery中,並以這種方式隱藏表單字段。我會回報,看看這是否更成功。 – user1048676 2012-01-06 14:09:46

2

我沒有在實踐中對它進行測試,但您可以做的一件事就是利用機器人非常快地發佈表單的事實。當你渲染頁面時,你可以有一個隱藏的字段並添加一個時間戳。在帖子發佈之後,在服務器端,檢查時間戳,如果它少於5秒,那麼它不太可能是人的帖子。

+0

謝謝,我會將它添加到我的檢查清單中。 – user1048676 2012-01-05 23:26:32

0

把recaptcha放在上面。 http://www.google.com/recaptcha

+0

用戶已經在使用數學CAPTCHA,所以我不知道爲什麼recaptcha會更好。 – j08691 2012-01-05 23:25:54

+0

謝謝,但爲什麼recaptcha更好,然後問一個數學問題?機器人可以讀取隱藏字段並將該值輸入到表單字段中嗎?我正在考慮一個數學問題和一個recaptcha都表明它是一個輸入表單的人。 – user1048676 2012-01-05 23:25:57

+0

因爲機器人可以閱讀文本。另外,如果他將最終的數學值存儲在隱藏字段中並將其提交到表單中,則機器人只需爲該隱藏字段名稱刮取頁面並從中提取值。所以機器人會知道該如何回答。 – James 2012-01-05 23:27:20

1

我解決了這個問題,某些形式的我只有走近它不同,增加了表格字段是空的提交。我發現大多數機器人都假定他們需要填寫所有文本字段才能提交表單。我所做的是添加一個真正的用戶不應該看到的表單字段,並確保它們在$ _POST中保持爲空。

http://aknosis.com/2009/04/17/zero-user-interaction-captcha/