Javascript код, чтобы запретить ботам отправлять форму - PullRequest
0 голосов
/ 14 марта 2012

Мне нужен код JavaScript, чтобы боты не могли отправлять формы.Но мне нужен код на стороне клиента в javascript, который работает как CAPTCHA, но не вызывает сервер

спасибо

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Самый простой и простой способ будет добавлять или редактировать данные формы на лету, когда кнопка фактически нажата:

<input type="hidden" name="SubmittedByHuman" value="NO" />
<input type="submit" value="Submit me" onclick="this.form.elements['SubmittedByHuman'] = 'YES';" />

Имея это, на стороне сервера проверьте значение элемента формы, называемого«SubmittedByHuman» - если это будет «НЕТ», это означает, что что-то обошло кнопку отправки - или, как люди правильно упомянули в комментариях, пользователь нажал, но отключил JavaScript.

1 голос
/ 14 марта 2012

Я сомневаюсь, что это возможно, поскольку боты достаточно развиты, чтобы обойти большинство вещей.

Помните, что бот не собирается открывать веб-страницу в браузере и нажимать "Отправить". Вероятно, он просканирует страницу на наличие <form>, создаст список всех полей <input> и выполнит запрос POST, содержащий все данные для каждого из них.

Он не будет запускать JavaScript или нажимать какие-либо кнопки. Вам нужно будет выполнить проверку на стороне сервера.

1 голос
/ 14 марта 2012

сделать что-то вроде

<h1>Type the result in the input box : 1+1</h1>

<input id="sum" type="text"/>

и перед отправкой проверьте, равно ли значение на входе 2, а затем отправьте его.

Чтобы улучшить этот тип кода, вы можете случайным образом создать эти 2 значения в h1 и сохранить их в переменной и перед отправкой проверить, совпадают ли значения input и sum.

...