0
我一直看到了使用驗證碼做這個網頁,但我不知道是否有其他方法......有沒有其他方法可以讓asp.net網頁識別機器人而不使用驗證碼?
我一直看到了使用驗證碼做這個網頁,但我不知道是否有其他方法......有沒有其他方法可以讓asp.net網頁識別機器人而不使用驗證碼?
還有其他方法,例如:
(1)時,顯示記錄的形式並提交時,檢查表格沒有提交太快。
(2)蜜罐:創建一個不可見的文本字段。提交時檢查它沒有被填充,因爲一個bot可能會填充所有的值,但是一個人不會填充它。 (3)使用客戶端JavaScript生成一個複選框,並告訴人們他們需要檢查它。 bot可能無法處理JavaScript,因此可能無法檢查它。 (4)爲確保只有在實際顯示錶單時機器人才能提交表單(機器人只需發佈提交的表單值而無需首先請求表單),就可以在表單顯示時創建並存儲會話標記然後在提交時檢查它是否存在。確保在使用它之後刪除會話令牌以防止重複使用。
下面是一些結合了(1)和(4)的C#示例代碼。
//When form is displayed
Guid token = Guid.NewGuid();
Session["token_" + token.ToString()] = DateTime.Now;
hdnToken.Value = token.ToString();
//When form is submitted
string token = hdnToken.Value;
book valid = false;
If (Session["token_" + token] != null)
{
DateTime displayed = DateTime.Parse(Session["token_" + token]);
//form must not be submitted within 30 seconds
valid = displayed < DateTime.Now.AddSeconds(-30);
Session.Remove("token_" + token);
}