Un sitio en el que trabajo tiene un enlace que descarga y abre un PDF que contiene datos confidenciales del usuario. La cookie de autenticación del usuario está marcada en el servidor para asegurar que tengan acceso a los datos antes de generar y servir el PDF. Sin embargo, me preocupaba la posibilidad de que un ataque CSRF filtrara datos. Debido a que el usuario abre el PDF haciendo clic en un enlace ordinario de <a>
, la mayoría de las defensas CSRF no son viables ni incurren en seguridad ni en compensaciones UX. Por ejemplo:
- Agregar un encabezado personalizado con un token CSRF o enviar doble el token de autenticación a través de un encabezado requeriría usar un XHR a través de JavaScript para realizar la solicitud del PDF, y se rompería la capacidad del usuario para abrir el enlace en una nueva pestaña
- Agregar cualquier tipo de token a la URL del enlace hará que la URL sea menos legible y fácil de usar
¿Tengo razón al preocuparme por CSRF en este escenario, o es la misma política de origen suficiente para dejarme confiar en la autenticación de cookies para este punto final sin temor a filtrar los datos del usuario? El tipo de ataque que estoy previendo es uno como el famoso defecto CSRF de Gmail que filtró tu lista de contactos. Me preocupa que al provocar la descarga de una manera que provoque algún efecto secundario en el navegador, un sitio de ataque podría hacer inferencias sobre el contenido del PDF, aunque no tengo idea de cuál sería el mecanismo preciso de tal ataque.