He pasado la mayor parte de las 2 semanas buscando una solución para asegurar mi juego. Es un juego para Android / iOS que tiene su propio servidor / base de datos.
Hasta ahora, la única seguridad que tengo son las contraseñas de sal + hash. Pero cualquiera puede llamar a mi API.
Así que quise cambiar esto, una solución que encontré que es muy simple es hacer un hash de mi consulta cuando llamo a mi API usando un secreto que está almacenado tanto en el cliente como en el servidor. Por supuesto, esto significa que si alguien descompila mi aplicación, puede acceder a mi API.
En el peor de los casos, pueden darse una versión premium gratuita de mi juego ($ 4) y aumentar su propio rango (que vería, y solo eliminar al usuario). Estoy de acuerdo con eso, se convertiría en un problema si pudieran hacerlo para cualquier usuario, pero eso debería ser imposible.
En mi opinión, la solución está bien para este modelo de amenaza, si quieren pasar por todos esos problemas solo para ahorrar $ 4, estoy de acuerdo con eso.
¿Alguien con más experiencia ve una falla en mi enfoque? Si es lo suficientemente bueno, ¿cuál es una buena manera de ocultar el secreto en mi cliente?
Referencia: Respuesta con speedplane Aquí