Honeypot Captcha классический код asp? - PullRequest
1 голос
/ 09 сентября 2011

Доброе утро, я безуспешно пытаюсь и не могу реализовать капчу, в основном из-за того, что у меня нет опыта работы с asp, кто-нибудь может помочь?

Несколько страниц HTML имеют контактную форму в нижнем колонтитуле, это имеет форму проверкиplace и запускает страницу asp, которая отправляет электронное письмо и перенаправляет на адрес thanku.asp.

Я хотел добавить капчу honeypot, поэтому добавил еще одно поле [body] и скрыл его с помощью css.Затем я добавил код ниже, чтобы проверить его ноль.Когда я нажимаю «отправить», форма обрабатывается, даже если в скрытом поле есть содержимое, может кто-нибудь определить, где я ошибаюсь?

<div id="captchafield">
<input type="text" name="body" value="" />
</div>

<script language=javascript>

if(!String.IsNullOrEmpty(Request.Form["body"]))
  IgnoreComment();

  </script>

1 Ответ

4 голосов
/ 09 сентября 2011

Вы ошибаетесь, проверяя поле только с помощью 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> в примере кода выше). Боты / скрипты будут игнорировать предупреждение, заполнять поле и активировать ловушку.

...