#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');
}
}
});
}