Ho un modulo di accesso in cui accetto il numero di cellulare dell'utente per il login.
Quando viene inviato un numero di cellulare, sto chiamando un JavaScript per convalidare il numero di cellulare. Le convalide del mio lato cliente consistono in verifiche come il numero di cellulare inizia con 9, 8 o 7, la lunghezza del numero di cellulare è uguale a 10 ecc.
Una volta che questo tipo di convalida è stato eseguito, sto controllando sul lato server se sono state immesse le corrispondenze di numero di cellulare e password (autenticazione).
Dato che ho alcuni controlli in JavaScript, uno può vedere la fonte e sapere che questo tipo di controlli ci sono. E si può modificare questo codice e lasciarlo riflettere per tutti gli utenti. Ad esempio, si può cambiare il codice che controlla se il numero di cellulare inizia con 9, 8 o 7 e sostituisce 9 con 1 (per esempio). Quindi, se uno immette il numero che inizia con 9, fallirà.
-
Come prevenire questo tipo di attacchi? Il modo ovvio è di mettere questi controlli sul lato server, ma ho almeno 10 diversi controlli e non voglio sovraccaricare i controlli lato server.
-
In che modo l'attaccante può modificare questi valori nel mio JavaScript e lasciare che rifletta per tutti gli utenti?
EDIT : il mio codice JavaScript lato client è simile a
var checkMobileNumber = form.mobileNumber.value;
if (checkMobileNumber.charAt(0) != 9 && checkMobileNumber.charAt(0) != 8 && checkMobileNumber.charAt(0) != 7) {
//Throw some error
}