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);
}