Grave vulnerabilidad en el uso de AJAX

Hemos descubierto un fallo “en el uso” de AJAX, no en el AJAX en sí, que permite al usuario modificar la lógica de una aplicación, consiguiendo por ejemplo, gastos de envío gratis en tiendas online.

El fallo consiste en que muchos programadores utilizan AJAX para ejecutar lógica de negocio de servidor, pero guardan el estado en el cliente.

El estado en cliente es fácilmente modificable, a no ser que esté encriptado (.NET), permitiendo con algunas herramiendas y/o plugins para firefox modificar el estado y alterar la lógica de negocio.

Pongamos un ejemplo,

En un proceso de compra de una tienda online, el cliente escribe su dirección, y la tienda online se comunica mediante AJAX para obtener los gastos de envío de esa dirección.

Si los gastos de envío se almacenan en una varia HIDDEN, es fácil alterar este valor y consegir gastos de envío gratis.

La solución es sencilla, no almacenar esta información en HIDDEN, o almacenarlo en servidor.

1 Comentario en “Grave vulnerabilidad en el uso de AJAX”

  1. Ricard dice:

    Buenas,
    1ero felicitarte por el blog, me parece muy interesante, lo encontré buscando diferentes frameworks para PHP.

    2do No es ningún fallo de seguridad, más bien una mala práctica. No podemos pretender almacenar en cookies o en campos hidden datos de este tipo como planteas en el ejemplo, como bien dices la solución esta almacenar en nuestro servidor, mediante BBDD, sesiones, etc.
    Pero como digo no veo el fallo de seguridad.

    Un saludo.

Deja tu comentario