2012-02-11 88 views
4

我正在啓動我的第一次啓動。我無法忍受試圖在註冊網站時閱讀驗證碼,不希望我的用戶使用。我尋找替代品,並且我找到了checkbox captcha。這是如何完成的,使用JavaScript加載複選框,並使用與通常用於創建註冊表單相同的代碼驗證它?複選框驗證碼

謝謝。

回答

4

我看着你發佈的文章鏈接的例子。乍一看,這似乎很容易被繞過。

複選框captcha的工作原理是垃圾郵件機器人不會解析或使用嵌入網頁的JavaScript代碼。因此,他們將無法在搜索表單中找到驗證碼複選框元素,因此不會爲複選框和表單發送帖子值,並且在服務器端,如果複選框值被拒絕沒有發送。

的問題,這就是:

  • 複選框的名字始終是相同的(gasp_checkbox
  • 殭屍很容易被「訓練」來檢測你的頁面上使用此JavaScript和採取相應的行動
  • 即使您輸出的複選框必須使用隨機名稱和值,仍然可以檢測到它

這3個問題的結果意味着這是很多比圖像驗證碼或其他方法更容易破解。當他們提交您的表單時,所有bot都必須添加:gasp_checkbox=on到他們的HTTP請求中。也就是說,如果你自己在自己的網站上實現這個功能,那麼任何殭屍程序都不可能通過它,因爲它的使用並不廣泛。

你可以使它更安全通過執行以下操作:

  • 生成唯一的名稱/值對在服務器端的複選框,並輸出模糊JavaScript這些值到客戶端
  • 即成腳本遠離表單,最好是由腳本生成的外部JavaScript文件。
  • 驗證爲複選框發送的值是否與之前生成並且以前未使用過的對匹配。

如果你做這些事情,我認爲你可以有一個有效的複選框驗證碼。如果有人在您的網站上接觸到它,即使採取了上述保護措施,也可能會失敗,但這可能需要一段時間,並且大部分時間對您仍然有效。

+0

然後呢,通過默默無聞的安全性不是不好嗎? http://en.wikipedia.org/wiki/Security_through_obscurity,「敵人知道系統。」 – Matt 2012-02-13 02:54:41

+0

是的,我同意這一點,但我認爲最糟糕的情況是您開始接觸表單垃圾郵件或不必要的註冊,因此您可以在一段時間內使用該解決方案,直到您的網站成爲攻擊目標,並且必須更改另一種解決方案。 – drew010 2012-02-13 03:49:10