Honeypot Captcha经典asp代码?

时间:2011-09-09 13:04:30

标签: asp-classic captcha

早上好,我正在尝试并且失败地实施验证码,主要是因为我没有经验,有人可以帮忙吗?

多个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>

1 个答案:

答案 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>)。机器人/脚本将忽略警告并填写字段并触发陷阱。