CSRF (Cross-Site Request Forgery)
CSRF es tipo de ataque que consiste en falsificar una petición a un servidor web haciéndose pasar por un usuario de confianza.
SPA
Una aplicación JavaScript del lado del cliente puede ser vulnerable al intentar comunicarse con una API REST utilizando claves API, ya que sus claves están expuestas a cualquiera que sepa cómo utilizar las herramientas de desarrollo.
Nunca incluya la API KEY de su aplicación en el lado del cliente o en un código descompilable.
Un enfoque común para asegurar una API REST es enviar un token en el inicio de sesión exitoso desde el servidor al cliente. Luego, el cliente envía ese token en cada solicitud.
- El contenido del token puede ser solo un nombre de usuario, o cualquier dato que desee.
- El servidor firma y encripta el token para evitar la manipulación.
Utilice tokens únicos de corto plazo en los cliente, cómo JWT o CSRF. Estos pueden almacenarse en el almacenamiento local del cliente o en una cookie.
- En ambos casos se almacena una clave de firma ("secret-key") en el servidor que sirve para crear los Tokens.
- Recordar que siempre, siempre, siempre debemos usar HTTPS entre el cliente/servidor para las peticiones.