Tengo un formulario de inicio de sesión donde estoy aceptando el número de teléfono móvil del usuario para iniciar sesión.
Cuando se envía el número de teléfono móvil, estoy llamando a un JavaScript para validar el número de teléfono móvil. Las validaciones de mi lado del cliente consisten en comprobaciones, como el número de móvil que comienza con 9, 8 o 7, es la longitud del número de móvil igual a 10, etc.
Una vez que se realizan este tipo de validaciones, verifico en el lado del Servidor si se ingresan las coincidencias de Número Móvil y Contraseña (Autenticación).
Ya que tengo algunos chequeos en JavaScript, uno puede ver la fuente y saber que este tipo de cheques están ahí. Y uno puede modificar este código y dejar que se refleje para todos los Usuarios. Por ejemplo, uno puede cambiar el código que verifica si el Número de móvil comienza con 9, 8 o 7 y reemplaza 9 con 1 (por ejemplo). Entonces, si uno ingresa el Número que comienza con 9, fallará.
-
¿Cómo prevenir este tipo de ataques? La forma obvia es poner estas comprobaciones en el lado del servidor, pero tengo al menos 10 comprobaciones diferentes y no quiero sobrecargar las comprobaciones del servidor.
-
¿Cómo puede un atacante cambiar esos valores en mi JavaScript y dejar que se refleje para todos los usuarios?
EDIT : el código de JavaScript del lado de mi cliente se ve a continuación,
var checkMobileNumber = form.mobileNumber.value;
if (checkMobileNumber.charAt(0) != 9 && checkMobileNumber.charAt(0) != 8 && checkMobileNumber.charAt(0) != 7) {
//Throw some error
}