verifica che venga effettuata una chiamata API dal dispositivo mobile [duplicato]

1

Sto sviluppando un server web e fornisco un'API da utilizzare da client mobili.
Alcune delle mie chiamate sono senza autorizzazione, ad esempio, per avviare il processo di autenticazione.

C'è un buon metodo / best practice per verificare che queste chiamate siano fatte solo dal dispositivo?
Ad esempio, il mio processo di autenticazione utilizzava un servizio di terze parti per inviare messaggi SMS e, se qualcuno utilizza questa API dal computer, può causare l'invio di molti messaggi SMS che costerebbe molto. C'è un buon modo per prevenire tali attacchi?

    
posta eran 22.01.2015 - 10:15
fonte

1 risposta

2

Purtroppo no, non c'è modo di prevenirlo, ma ci sono modi per mitigare e ridurre l'abuso. Il motivo è che alla fine qualsiasi processo si sta utilizzando per autenticare l'app client, può essere decodificato e imitato in un'app di terze parti. I modi per mitigare sono:

  1. utilizzando una sorta di challenge response tra il server e l'app in modo che il client debba rispondere alla sfida del server con la risposta corretta.

  2. codice che offusca la parte che gestisce la risposta alla sfida nel client

  3. cambiando periodicamente l'algoritmo di risposta alla sfida in modo che chiunque lo abbia decodificato e imitato debba ripetere l'intero processo.

  4. ponendo alcuni limiti sull'utilizzo dell'API, quindi non può essere abusato.

risposta data 22.01.2015 - 14:57
fonte

Leggi altre domande sui tag