Voy a construir una red de afiliados de demostración, que debe ser protegida. Digamos que tengo una aplicación web llamada Affiliate Network Manager que administra todos los afiliados asociados con mi librería en línea.
Affiliate Network Manager proporciona una API que permite que el sitio web de un editor (un sitio afiliado) obtenga el logotipo del sitio web de la librería, de modo que pueda mostrar el logotipo de la librería en el sitio web del editor.
Supongamos el siguiente escenario: hay un sitio web para editores A, con ID única 123
. Un usuario final visita el sitio web, hace clic en el logotipo, se redirige a la tienda de libros en línea y compra un libro.
El sistema obtiene la ID única de la solicitud y sabe que esta solicitud proviene del editor A. Luego, recuerda que el cliente visitó la librería del editor A. Por lo tanto, el editor A recibe una comisión basada en el monto de la transacción. / p>
Esto funciona, pero hay un problema de seguridad: Supongamos que tenemos otro editor B, con ID única 456
. Luego, un atacante del editor B puede capturar una solicitud del editor A y cambiar la ID única a 456
. Entonces, el editor B recibirá la comisión del editor A.
¿Cómo puedo resolver este problema de seguridad y asegurarme de que el atacante no pueda cambiar la ID única cuando se transmite la solicitud? O en otras palabras: ¿cómo puedo realizar la autenticación en este caso?