Tengo un punto final de API disponible públicamente. Tengo que evitar que un simple script $ .ajax descargue todos los datos expuestos en cuestión de segundos y al menos forzar una actualización de la página cada vez que se envíe una nueva solicitud. Si bien esto no lo protegería por completo, ayudaría a mitigar los ataques, mientras que las limitaciones no técnicas nos permiten protegerlo de una mejor manera.
El problema es que los tokens CSRF se pueden recuperar fácilmente de la página con javascript y la cookie CSRF se envía junto con la solicitud ajax. Parece que una solicitud enviada desde la consola del desarrollador de un navegador se ve como una legítima. ¿Cómo puedo diferenciarlos?
Como una pequeña nota, consideré usar un nonce en la cookie pero eso también significaría una actualización de la página para clientes legítimos que necesitan consultar los datos dos veces o tres veces y eso no está permitido.