Contexto : el sitio angular está alojado en S3 detrás de CloudFront, separado del servidor Express que se usa como API y casi todas las solicitudes son XMLHttpRequests. Todas las solicitudes se envían sin cookies (con credenciales = falso por defecto) y utilizo el token JWT Bearer para la autenticación al tomarlas de las cookies en forma angular y al encabezado Authorization
(esta técnica es una especie de lo que se describe en CSRF Wiki page ).
En el sitio Express, no permito el encabezado Cookie
en Access-Control-Allow-Headers
.
Las cookies tienen el indicador secure: true
, y NO son httpOnly
porque necesito acceder manualmente a ellas en angular.
También he leído en este artículo de Medium que JSON-Web-Tokens (JWT) / Token Tokens
es sin duda uno de los mejores métodos para prevenir la CSRF
Pregunta 1 : ¿Agregaré seguridad adicional si agregaré el encabezado X-XSRF-Token a cada solicitud y, por ejemplo, dejaré el mecanismo sin estado al verificar el mismo valor en la carga útil de JWT? (Lo leí en este hilo )
Pregunta 2 : ¿Realmente necesito esfuerzos de seguridad adicionales contra CSRF tomando todo lo que describí?