Estoy exponiendo algunos métodos REST en un servidor para una aplicación móvil.
Me gustaría evitar que los usuarios puedan oler cómo se construyen los métodos HTTP (desde la aplicación móvil) y luego enviarlos nuevamente al servidor. Ejemplo:
- La aplicación móvil envía una solicitud.
- El usuario usa un proxy y puede verificar lo que sucede en la red
- El usuario ve y guarda la solicitud que el móvil acaba de enviar
- => Ahora no quiero que el usuario pueda enviar manualmente esa solicitud
¿Es suficiente asegurar el servidor a través de HTTPS?
HTTPS simplemente significa que los datos que se transportan están encriptados para que solo el cliente y el servidor puedan desencriptarlos (en un mundo ideal, sin hablar de ataques MITM, etc.).
Como tal, nada en el protocolo detendrá los ataques de repetición.
Deberá incorporar algún tipo de mecanismo para evitar ataques de repetición (algo así como tokens que caduquen o tokens que invaliden una vez que el proceso haya finalizado) para asegurarse de que su aplicación no sea vulnerable a los ataques de repetición. Este mecanismo se puede usar con HTTP normal.
fuente