Sto costruendo un'app mobile che utilizzerà l'API creata da me sul mio server. Queste API saranno pubblicamente esposte, ma non documentate pubblicamente. Voglio consentire all'utente di utilizzare l'app senza autenticazione per un'esperienza utente più veloce. Supponiamo che lo scopo dell'app sia "sondaggi", quindi l'utente creerà e voterà per sondaggi diversi. Voglio essere sicuro che un utente hacker non sarà in grado (per esempio) di votare più volte per lo stesso sondaggio (o fare qualsiasi altra cosa cattiva).
So che è molto semplice tracciare il traffico HTTPS ed eseguire chiamate API simili e fare cose cattive sul DB. Per evitare ciò, stavo pensando di generare lato client una stringa che è il timestamp crittografato con AES e una password fissa (uguale per ogni client e incisa nel codice sorgente) conosciuta solo dal server, il server decodificherà quindi il stringa e controlla il timestamp. [Così facendo suppongo che nessuno possa decompilare e trovare il PWD all'interno del codice sorgente]
Conosci qualche approccio migliore? Non voglio reinventare la ruota, ma suppongo che OAuth non risolva i miei problemi qui.
Esempi per una migliore comprensione:
API1: recupera i sondaggi disponibili - > Non voglio che un attaker chiamerà più volte questa API per evitare di leggere il DB sulle chiamate malicoius
API2: invia la valutazione del sondaggio - > Non voglio che un attaker chiamerà più volte questa API per falsificare i risultati
Grazie mille per il tuo aiuto