En general, no puede confiar en CUALQUIER COSA del cliente; este es el problema que enlace está destinado a resolver, pero Ese es un largo camino para bajar. Lo mejor que puede hacer es autenticar al usuario y asegurarse de que todas las acciones de ese usuario estén autorizadas, independientemente de que provengan de una aplicación cliente real o de alguien que juegue con su api, a través de MITM o mediante acceso directo.
Como @Bakuriu señala anteriormente, los valores no aleatorios son valores aleatorios, se usan una vez, son diferentes todo el tiempo; se usan para prevenir ataques de repetición y como tokens en los esquemas de prevención CSRF, por ejemplo. Lo que está pensando es, quizás, una clave API, un valor utilizado para autenticar a un usuario (donde el usuario podría ser un programa). Como dice, no puede incorporarlo a la aplicación, ya que el usuario puede acceder a ella mediante el desmontaje, la inspección del código fuente o la inspección del tráfico de la red.
Por lo tanto, vaya por la ruta de no confiar en el cliente. Eso significa que cada usuario debe estar autenticado, independientemente del cliente que use. Luego, verifica que ese usuario tenga permiso para realizar la acción que desea. Puede emitir claves de api para cada usuario.
Un posible esquema: pídales que verifiquen quiénes son al iniciar sesión en su sitio web y generar una clave para ellos que puedan proporcionar a la aplicación: la aplicación puede guardarla en el llavero del usuario si desea que sea conveniente. Cuando intenten realizar una acción, verifique la clave api en su base de datos. Mientras todo esto se haga a través de canales seguros, es razonable y es utilizado por muchos servicios.
Otro: haga que el usuario se autentique en su servicio (potencialmente a través del inicio de sesión con Facebook o lo que sea; auth / openid son buenos). Luego verifique al usuario directamente en cada solicitud.
Ambos tienen la ventaja de que son fáciles de revocar y de que puedes limitar al usuario a lo que tienen permitido hacer, independientemente de cómo realicen la solicitud.
TODAS las verificaciones de autorización y la verificación de autenticación deben realizarse en el lado del servidor, siempre. El cliente se encuentra en territorio enemigo y nunca se puede confiar en él (excepto la fealdad del TPM).