Si alguien rastrea las solicitudes y respuestas, ¿puede obtener el token de los encabezados?
Si un atacante está en una posición adecuada para realizar un ataque MitM (Man in the Middle) y es capaz de interceptar y ver las solicitudes, sí, pueden obtener el token de los encabezados. Para evitar esto, asegúrese de que el servicio REST en uso sea utilizando SSL / TLS . Esto evitará ataques MitM y repetición. El servicio REST también debe asegurarse de que estos tokens se invaliden correctamente en el lado del servidor una vez que el usuario cierra la sesión y debe haber un tiempo de espera de sesión duro asociado con estos tokens.
¿Dónde debería almacenar el token en el cliente de Android?
Puede almacenarlos en las preferencias compartidas de su aplicación. Lea esta respuesta para obtener más detalles al respecto.
¡Si almaceno el token en un lugar como SharedPreferences y el acceso de usuarios, Él puede enviar una solicitud falsa al servidor!
Sí, un usuario puede hacer eso con su propio token de sesión . Para eso se usa exactamente el token. En lo que respecta al acceso a un controlador limitado, es responsabilidad del servicio asegurarse de que el control de acceso sea adecuado en el lado del servidor y que solo se permita al usuario realizar solicitudes controladas a un punto final en particular.
El problema es que si un atacante se apodera de su token de sesión válido , podrá suplantarlo en la aplicación. Pero acaba de hacer que su tarea sea difícil utilizando SSL / TLS en todas partes y asegurándose de que la aplicación no filtre el token de sesión de ninguna manera (por ejemplo, en las URL de solicitud).