Нужно использовать проверку captcha для форм мобильных приложений?

#mobile #captcha #spam #intel-xdk

# #Мобильный #captcha #спам #intel-xdk

Вопрос:

Я создаю мобильное приложение HTML5 через XDK. У меня есть несколько форм, которые я использую для проверки Captcha на веб-сайте. На мой взгляд, спам с комментариями для мобильного приложения не создает никаких проблем. Кто-нибудь видит спам в комментариях к мобильным приложениям? Как вы думаете, нужно ли мне использовать проверку Captcha в форме мобильного приложения или оставить это, чтобы не беспокоить пользователей?

Ответ №1:

Спам с комментариями случается как на мобильных, так и на настольных веб-сайтах или приложениях. Часто используемая проверка текстовой капчи помогает устранить эту проблему.

Когда дело доходит до мобильных приложений, автоматизировать отправку данных в нативных приложениях сложнее. Причина частично связана с невозможностью написания вредоносных внешних скриптов для обнаружения элементов в исходном коде и вызова отправки форм. Кроме того, мобильные приложения должны быть приобретены (бесплатные или платные) и установлены на физическом устройстве или в симуляторе.

Капчи, которые больше подходят для мобильных приложений: sliderCAPTCHA, imageCAPTCHA, motionCAPTCHA, RingCAPTCHA и NuCaptcha.

Ответ №2:

Лучший способ предотвратить спам комментариев и спам-ботов как на веб-сайтах, так и в гибридных приложениях — это создать форму динамически с помощью JS или jQuery вместо непосредственного размещения формы в представлении (HTML-кодах). Таким образом, вам не нужно ставить капчу, чтобы защитить ее от ботов. Вот пример кода для создания формы с помощью jQuery:

 // Make THE FORM tag
var $form = $("<form/>", {
  appendTo : $("#contactFormSection"),
  class    : "col-xs-12 col-sm-11",
  id       : "contactForm",
  submit   : AJAXSubmitForm
});

//MAKE A HIDDEN INPUT
$("<input/>",{
  type        : "hidden",
  name        : "flag", // Needed for serialization
  value       : "5",
  appendTo    : $("#nameSection"),
  on          : {        // Yes, the jQuery's on() Method 
    /*
    input : function() {
      console.log( this.value );
    }
    */
  }
});

//Make Name INPUT
$("<input/>",{
  type        : "text",
  class       : "formContact", 
  id          : "exampleInputName2",
  name        : "name", // Needed for serialization
  placeholder : "Your Name",
  appendTo    : $("#nameSection"),
  on          : {        // Yes, the jQuery's on() Method 

  }
});

//MAKE EMAIL INPUT
$("<input/>",{
  type        : "email",
  class       : "formContact", 
  id          : "exampleInputEmail1",
  name        : "email", // Needed for serialization
  placeholder : "Your Email",
  appendTo    : $("#emailSection"),
  on          : {        // Yes, the jQuery's on() Method 

  }
});

//MAKE TEXTAREA 
$("<textarea/>",{
  class       : "formContact-text", 
  rows        : "3",
  name        : "msg", // Needed for serialization
  placeholder : "Your message",
  appendTo    : $("#msgSection"),
});

//submit the form
function AJAXSubmitForm(event) {
  event.preventDefault(); // Prevent Default Form Submission
  // do AJAX instead:
  var serializedData = $(this).serialize();
  $.ajax({
    url: "Your server API URL",
    type: "POST",
    data: serializedData,
    dataType: 'json',
    success: function (data) {
      // log the data sent back from PHP
      if(data.status){
        $('#confirmation').modal('show');
      } else{
        $('#errorMsg').modal('show');
      }
    }
  });
}