Sto lavorando su un'API pubblica per il progetto X. Il sistema consente di registrare un app_id e di chiamare i metodi API fornendolo, come al solito. Ora, ho bisogno di sviluppare un client mobile ufficiale per il progetto X che dovrebbe avere possibilità più ampie di quelle non ufficiali costruite su questa API.
In altre parole, pensiamo ad esempio che abbiamo un'API composta da 5 metodi GET. Ora implementerò 1 nuovo metodo PUT e voglio consentire solo 1 app_id esatto per utilizzarlo.
Il problema di sicurezza è questo:
-
Se codifico semplicemente il controllo per app_id, sarà facile da superare, basta sniffare il traffico o decomprimere l'app per trovare questo app_id ufficiale e poi fingere che
-
L'applicazione è mobile, quindi non posso limitare l'accesso tramite IP
-
Crittografia a chiave pubblica, in cui la chiave pubblica è nel client e le chiavi private mantenute segrete dal server sembra uguale al problema 1. per me, non è vero?
Credo che non si tratti di un problema di supernova, quindi suggerisci gentilmente qualsiasi soluzione affidabile, per favore.