Пустая отправка спам-бота

Я пытаюсь придумать способы борьбы со спам-ботом, который просто отправляет мою форму с пустыми записями.

Моя форма использует JQuery для проверки заполнения полей и правильности заполнения поля электронной почты. Однако этому спам-боту удается обойти это (отключив JavaScript?) И он может отправлять полностью пустую форму. Так что мне нужен способ остановить это, но проблема здесь в том, что я не могу использовать какие-либо плагины капчи, которые я нахожу в Интернете, и т. Д., Потому что я не могу использовать PHP, поэтому мне потребуется проверка на стороне клиента на любом это я мог бы использовать для борьбы с этим, но тогда мой другой вопрос заключается в том, может ли этот спам-бот отключить JavaScript, а затем, конечно, какие-либо меры, которые я ввел, например, капчу приманки или отключение формы на 5 секунд при загрузке страницы, не будет работать, потому что JavaScript просто отключен, и снова этот спам-бот просто обходит все и завершает пустую отправку.


person CornJ    schedule 28.05.2015    source источник
comment
Ответ прост: вы не можете сражаться с ботами с чистой проверкой на стороне клиента. Вам нужна какая-то проверка на сервере, потому что в целом вы должны предполагать, что клиент полностью контролирует любой код, запущенный в браузере, и что он может заменить любой проверочный код, который вы есть в браузере с собственной автоматической проверкой.   -  person Frxstrem    schedule 28.05.2015
comment
Используйте простую систему ввода символов без изображений, например два случайных числа, сгенерированных в javascript. Если сумма этих чисел верна, отправьте форму. Чтобы предотвратить отправку с отключенным javascript, просто опустите uri действия до тех пор, пока форма не будет заполнена, а затем добавьте действие с помощью javascript, прежде чем отправлять форму. В любом случае вы должны проверить все на стороне сервера. Правильно сделать две проверки (1 спереди, 1 сзади).   -  person kosmos    schedule 28.05.2015


Ответы (1)


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

Вариант №1:

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

По умолчанию все сайты доступа к спам-ботам с отключенным javascript. И они обычно закодированы для заполнения всех полей формы.

Итак, что вы можете сделать, это добавить в форму одно скрытое поле с любым именем, скажем, "hidden_captcha".

Теперь ваш серверный код будет выглядеть так: если это скрытое поле заполнено, то эта запись будет отправлена ​​спам-ботом, потому что обычный посетитель не может видеть ваше скрытое поле и отправлять данные.

Спамбот просто ищет поля в форме и отправляет то же самое.

Таким образом, вам не нужно добавлять плагин / изображения капчи и фильтровать все записи, отправленные спам-ботами.

Вариант 2:

Другой подход - добавить еще одно скрытое поле под названием «js_fill». Теперь поместите на свою страницу JS-код, который генерирует случайное значение, и заполните это поле.

После этого код проверки на стороне сервера будет выглядеть следующим образом:

if($_POST['js_fill'] != '' && $_POST['hidden_captcha'] == '') {
  // Valid Entry
} else {
  //Something Wring Here
}

Дайте мне знать, если это ясно или требует большего понимания этой концепции.

person Avinash    schedule 28.05.2015
comment
Спасибо, что поделились со мной! Что ж, я пробовал маршрут скрытых полей, но обнаружил, что, поскольку этот спам - это всего лишь пустые записи, то в любом случае это скрытое поле будет пустым, и, следовательно, пустой спам все равно пройдет? Если вы понимаете, о чем я? Обычно я не могу проверить наличие записей в скрытом поле, потому что этот спам в любом случае всегда пуст! - person CornJ; 29.05.2015
comment
@CorrineJW Я изменил подход к ответу. - person Avinash; 29.05.2015
comment
Да, я верю, что это сработает отлично! Спасибо большое за помощь. - person CornJ; 29.05.2015