Ho trascorso la maggior parte delle 2 settimane a guardare una soluzione per garantire il mio gioco. È un gioco per Android / iOS che ha il proprio server / database.
Finora, l'unica sicurezza che ho sono le password salt + hash. Ma chiunque può chiamare la mia API.
Quindi volevo cambiarlo, una soluzione che ho trovato è molto semplice fare hash alla mia query quando si chiama la mia API usando un segreto che è memorizzato sia nel client che nel server. Ovviamente questo significa che se qualcuno decompila la mia app, può accedere alla mia API.
Nel peggiore dei casi, possono darsi una versione premium gratuita del mio gioco ($ 4) e aumentare il proprio rank (che vedrei, e rimuovere solo l'utente). Sono d'accordo, sarebbe un problema se potessero farlo per qualsiasi utente, ma ciò dovrebbe essere impossibile.
Secondo me, la soluzione va bene per questo modello di minaccia, se vogliono affrontare tutti questi problemi solo per risparmiare $ 4, mi va bene.
Qualcuno con più esperienza vede un errore nel mio approccio? Se è abbastanza buono, qual è un buon modo per nascondere il segreto nel mio client?
Riferimento: Answer by speedplane Qui