1.不可见的 JS 验证码:
隐藏js自动填写,随机固定值10组,例如:今天是多少号,中国的首都等,用 JavaScript 和css 的手段隐藏起来,不让用户看到,
用户启用js 会自动回答正确答案,
用户不启用js ,会提交错误答案,在后台判断提交时修正为正确答案,
没有答案判定为机器人
2.不可见的输入框陷阱:
评论框中增加一个隐藏字段,正常用户是看不到这个字段,所以也不会去填写它,大多数机器人遇到 domain 关键字表单会自动填充一些信息
后台的判断逻辑片段但是机器人是可以看到这个字段的,如果在这里填写了任何东西,那么就会被判定为机器人
3.判断页面输入时间:
新增页面打开的时间,提交表单时验证,打开时间与输入时间低于固定值例如5秒,判断为机器人
<% If DateDiff("s",request.form("intime1"), Now()) < 5 then response.write "" response.end end if %>
4.判断来路:
<% dim server_v1,server_v2 server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) if server_v1="" or instr(server_v1,"/add.asp")<=0 or mid(server_v1,8,len(server_v2))<>server_v2 then response.write "" response.end end if %>
5.记录用户的cookies以及IP来限制同一用户发表留言的数量:
<% if request.cookies("postnum")="" then response.cookies("postnum")=1 response.cookies("postnum").expires=DateAdd("h", 24, Now()) else response.cookies("postnum")=request.cookies("postnum")+1 end if if request.cookies("postnum") > 5 then response.write "" response.end end if %>