Estoy creando una aplicación móvil que usará la API creada por mí en mi servidor. Estas API serán expuestas públicamente, pero no documentadas públicamente. Quiero permitir que el usuario use la aplicación sin autenticación para una experiencia de usuario más rápida. Asumamos que el propósito de la aplicación es "encuestas", por lo que el usuario creará y votará por diferentes encuestas. Quiero asegurarme de que un usuario pirata no podrá (por ejemplo) votar varias veces para la misma encuesta (o hacer cualquier otra cosa mal).
Sé que es muy sencillo rastrear el tráfico HTTPS y realizar llamadas de API similares y hacer cosas malas en la base de datos. Para evitar eso, estaba pensando en generar en el lado del cliente una cadena que sea la marca de tiempo cifrada con AES y una contraseña fija (la misma para cada cliente y tallada en el código fuente) conocida solo por el servidor; cadena y compruebe la marca de tiempo. [Haciendo esto, supongo que ninguno puede descompilar y encontrar el PWD dentro del código fuente]
¿Conoces algún enfoque mejor? No quiero reinventar la rueda, pero supongo que OAuth no resolverá mis problemas aquí.
Ejemplos para una mejor comprensión:
API1: recuperar encuestas disponibles - > No quiero que un operador llame varias veces a esta API para evitar leer la base de datos en las llamadas de malicoius
API2: enviar la valoración de sondeo - > No quiero que un operador llame varias veces a esta API para falsificar los resultados
Muchas gracias por tu ayuda