¿Cómo puedo evitar las solicitudes desde la consola del navegador mientras sigo usando ajax? [duplicar]

0

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.

    
pregunta patricio 20.10.2017 - 22:48
fuente

1 respuesta

3

No puedes.

Cualquier usuario legítimamente autenticado puede manipular absolutamente cualquier solicitud de http hecha a su API. Usando un proxy como Fiddler o Burp o solo la consola del navegador, pueden ajustar los encabezados, copiar las cookies casi cualquier cosa.

Si necesita limitar el límite de velocidad, debe mantener algún tipo de estado en su servidor. Un token por sesión en la cookie de autenticación le permitirá hacerlo, cada solicitud con una cookie determinada se registra y las solicitudes pueden rechazarse si se realizan demasiadas solicitudes dentro de un cierto corte

    
respondido por el ste-fu 20.10.2017 - 23:07
fuente

Lea otras preguntas en las etiquetas