What my concern is someone can figure out the API, and start hitting
with different combination of OTPs for mobile number and gain the
access to an account
Questa è una domanda frequente relativa alla sicurezza delle applicazioni web. Una volta che le nostre API sono pubbliche, sono esposte a qualsiasi tipo di malizia.
Oltre al link , che dovrebbe essere obbligatorio, ecco alcune misure da prendere in considerazione.
Soglie
Impostazione di un numero massimo di richieste al secondo e origine ( indirizzo remoto ).
Diciamo X Req / s per indirizzo IP.
Le soglie vengono comunemente implementate nel gateway API o nel server di autenticazione. Molti gestori API forniscono il controllo delle soglie fuori dalla scatola.
Il punto è che il numero di combinazioni possibili di telefono / otp e le rispettive permutazioni sarà di solito superiore alla soglia, cosa che riduce le possibilità di colpire una tupla valida o, almeno, fa più difficile.
Possiamo impostare endpoint con soglie diverse. Di solito, gli endpoint correlati alla sicurezza avranno valori inferiori rispetto a quelli relativi al business.
Il colpire la soglia causa il divieto. Il ban dura tutto il tempo che vuoi (1, 5, 10 minuti, ...). Se ti piacciono le liste nere, questo è il posto giusto per aggiungerne uno.
Casi di studio:
Opacità
Spesso pensiamo che dovremmo fornire quante più informazioni possibili all'utente quando si verificano errori. Va bene quando parliamo di regole aziendali, ma non è quando parliamo di sicurezza.
Se la procedura di accesso fallisce, è sufficiente una credenziale non valida semplice. Non dire a chi c'è dall'altra parte del cavo le cause dell'errore.
Rendere la tua sicurezza opaca agli esterni riduce la superficie di attacco.
Token di autenticazione
Ti incoraggerei a non reinventare la ruota, in generale con la sicurezza. JWT .
È un vantaggio se puoi forzare la scadenza a volontà dal back-end.
Casi di studio:
Tracciabilità
Le connessioni
Https sono crittografate. Tuttavia, le stringhe di query possono essere tracciate nei file di registro una volta che il messaggio è stato decodificato. Quindi, non importa se i valori della stringa di query sono stati crittografati due volte. Suggerirei di inviare la richiesta POST per i processi di autenticazione. Fallo per qualsiasi altra richiesta che possa trasportare dati sensibili.
Convalida del certificato
Come prevenzione per MITM , controllando se il certificato del server corrisponde al dominio del server è un vantaggio.
La consapevolezza
La sicurezza è un affare serio. Tieniti aggiornato e ben documentato. Qui un buon posto per iniziare a lavorare. OWASP - Categorie .
Ecco alcuni progetti interessanti: