2010-07-12 146 views
5

我正在運行ColdFusion MX,所以在表單提交之前,我沒有可能在我的應用程序中使用內置的cfimage Captcha functionality如何防止機器人自動提交表單?

但問題是沒有驗證碼機器人提交表格。

防止自動提交的最佳方法是什麼?

+0

爲什麼你不能使用captcha?你使用什麼編程語言? – 2010-07-12 18:46:03

+0

我正在使用Coldfusion MX, ,它沒有內置Captcha支持。來自Coldfusion 8的 – user160820 2010-07-12 19:07:39

+2

,它支持Captcha。 – user160820 2010-07-12 19:16:29

回答

6

看看cfformprotect - 它將與CFMX 6和所有後來的引擎一起工作。

它旨在通過各種各樣的方法來阻止漫遊器和垃圾郵件發送者,從而完全可以訪問並且對大多數用戶不可見。你

可能也想看看一個CF wrapper for reCaptcha,這與CFMX 7

4

我用不同的技術使用的技術是使用圖像按鈕。您的POST處理程序獲取點擊圖像的x,y座標。我發現這些殭屍程序(只是生成發佈的請求)正在通過0,0,並通過將這些請求放在地板上,我將垃圾郵件降低到低於真實值。對不起,我不知道如何在CF中這樣做,但我希望這種技術對你有用。

9

驗證碼不一定是圖片!

嘗試以下解決方案之一:

  • 大多數機器人不理解CSS。創建兩個提交按鈕,第一個提供的值將被服務器拒絕,第二個提供的值將被服務器接受。使用CSS隱藏第一個。
  • 要求用戶回答一個簡單的數學問題。這將需要您創建數學問題並將預期解決方案存儲在某處(如用戶的會話),然後將用戶提交的答案與存儲的答案進行比較。爲了獲得額外的保護,您可以創建簡單的加法,減法和乘法問題。避免分裂,剩餘部分對於一些用戶來說是痛苦的。
  • 機器人讀取表單元素的名稱,並傾向於忽略文本標籤。嘗試創建一個名爲「optout」的複選框(如簡訊),默認選中。在複選框旁邊,要求用戶取消選中該複選框(如果他們是人類)。相反的技術也適用(您要求用戶檢查的未選中複選框)。

所有這些解決方案都可以在沒有第三方代碼或API調用的情況下完成。

這就是說,reCAPTCHA是相當不錯,很容易集成到幾乎任何環境。

+0

雖然非常規,我喜歡你給的CSS解決方案。 – Seidr 2010-09-06 10:44:43

+0

由於瀏覽器可能使用(隱藏)第一個提交值,因此兩個提交按鈕最終可能會讓用戶按Enter/Return鍵獲取hooped提交表單。同樣,一個CSS隱藏的表單字段,例如URL,將被機器人填充,但也可能通過表單自動填充來填充。 – amcgregor 2011-05-02 17:41:57

0

有關使用的計算方法如何?就像8 + 5 =?

OR

怎麼樣使用ColdFusion.Ajax.submitForm?