En mi código, la primera llamada AJAX al servidor comprueba la recaptcha y desinfecta los datos.
¿Hay una manera para que un usuario malintencionado omita ese proceso?
Ya que este es un javascript del lado del cliente, ¿podría simplemente completar el correo electrónico y la contraseña en el código de creación del usuario de Firebase al editar el código?
En realidad, ¿puede el usuario editar el código del lado de mi cliente para omitir mis mecanismos de protección?
$("#registerForm").submit(function(e) {
e.preventDefault();
var username = $("#username").val();
var email = $("#email").val();
var password = $("#password").val();
var confirmPassword = $("#confirmPassword").val();
var referer = $("#referer").val();
$this = $(this);
$.ajax({
type: "POST",
url: "register",
data: $this.serialize()
}).done(function(data) {
if (data) {
firebase.auth().createUserWithEmailAndPassword(data.email, data.password).then(userData => {
$.ajax({
type: "POST",
url: "register2",
data: userData.serialize()
}).done(function(result) {
if (result == "WORKED!") {
localStorage.setItem('success_msg_local', "Please check your inbox. You have 1 hour to confirm your email address. Failing to do so will delete the account and let you register again.");
window.location.href="/users/register";
}
else if (result == "FAILED1!") {
firebase.auth().signOut().then(function() {
localStorage.setItem('error_msg_local', 'Failed to Register. Try again.');
window.location.href="/users/register";
});
}
else if (result == "FAILED2!") {
firebase.auth().signOut().then(function() {
localStorage.setItem('error_msg_local', 'Failed to Register. An error occured. Please try again later.');
window.location.href="/users/register";
});
}
});
},function(error) {
var errorCode = error.code;
var errorMessage = error.message;
("ERROR 3: "+ errorCode +" "+errorMessage);
localStorage.setItem('error_msg_local', 'Failed to Register. Please wait 1 hour before trying again.');
window.location.href="/users/register";
});
}
else {
localStorage.setItem('error_msg_local', 'Recaptcha failed'); window.location.href = "/users/register";
}
}).fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
});