早上好,我正在尝试并且失败地实施验证码,主要是因为我没有经验,有人可以帮忙吗?
多个html页面在页脚中有一个联系表单,这样就可以进行表单验证并触发一个发送电子邮件的asp页面。重定向到thanku.asp。
我想添加蜜罐验证码,所以添加了另一个字段[body]并使用css隐藏它。然后我添加了下面的代码来检查它的null。当我点击提交时,即使隐藏字段中包含内容,表格也会被处理,有人可以找到我出错的地方吗?
<div id="captchafield">
<input type="text" name="body" value="" />
</div>
<script language=javascript>
if(!String.IsNullOrEmpty(Request.Form["body"]))
IgnoreComment();
</script>
答案 0 :(得分:4)
通过仅使用JavaScript检查字段,您就会出错;您应检查它是否为空白服务器端,如果没有,则忽略/拒绝提交。例如。
<强> HTML 强>
<div id="captchafield">
<noscript>Security field; please leave this blank</noscript>
<input type="text" name="captcha" value="" />
</div>
<强> ASP 强>
Dim captcha
captcha = Request.Form("captcha")
If captcha <> "" Then
Response.Redirect("badcontent.asp")
End If
' continue
您可以使用JavaScript的目的是隐藏验证码字段和/或显示一条消息,让用户知道如果他们的JavaScript处于关闭状态时不填写它(请参阅上面的示例代码中的<noscript>
)。机器人/脚本将忽略警告并填写字段并触发陷阱。