Защита веб-форм от спама

Bot

Методы защиты веб-формы без капчи. Суть метода заключается в том, что сервер принимает время затраченное пользователем на заполнение формы. Если пользователь заполнил форму меньше чем за определённое время, то он считается ботом. Время можно варьировать в зависимости от сложности формы.

Отправка данных (jQuery)

Javascript, который является стандартным средством на стороне браузера клиента, даёт широкий набор инструментов по обработке событий, напишем простой скрипт для отправки данных

// запомним время создания формы
var startTime = Date.now();
// установим обработчик события submit
$('form').on( 'submit', function(e) {
  e.preventDefault();
  // проверим время затраченное пользователем
  var passedTime = Date.now() - startTime;
  // создатим скрытое поле, в котором передадим на сервер затраченное время
  $('<input>', { 'type': 'hidden', 'name': 'passedTime', 'value': passedTime 
 }).appendTo($('form'));
  // отправим данные
  $.ajax({
    type: 'POST',
    url: actionUrl,
    data: $('form').serialize(),
    dataType: 'json',
    success: function(data) { console.log('Send:', data); }
  },
    error: function(data) { console.log('Error!', data); }
  });
});

Теперь при отправке формы нам будет достаточно получить значение полей текстового ввода и счётчика и сравнить в их серверной части на PHP для получения заключения о том, кто её заполнял — человек или робот.

Код проверки на сервере (php)

if($_POST['passedTime'] > 20000){
    // ... исполняемый код
    echo json_encode($send); // вернем ответ сервера
    die;
}

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *