¿Son las sesiones suficientes para proteger una aplicación web?

1

Imagina este escenario:

  1. El registro SQL se crea para el usuario
  2. el ID de registro se almacena en la sesión
  3. El registro de SQL puede actualizarse donde ID de sesión = ID de SQL
  4. el usuario puede ver los datos en el registro SQL donde ID de sesión = ID de SQL

¡¿Bastante sencillo no ?!

De todos modos, imagine que el usuario A (sin ninguna intención maliciosa) puede ver los datos del usuario B.

¿Cómo demonios podría pasar esto?

    
pregunta user91107 04.11.2015 - 19:32
fuente

1 respuesta

1

Si te entiendo bien ... Imagina que espío tu Javascript interno por un tiempo. Imagina que soy capaz de buscar lo siguiente:

  1. DeleteUserRecord()
  2. UpdateUserRecord()

Y en cada uno, estás haciendo coincidir estas ID con la clave principal en la base de datos. Por ejemplo, su código excita esto: DELETE [record] FROM [table] WHERE [id] = '1234' , y su Javascript se ve así: DeleteUser(1234) . ¿Qué pasa si lo cambio a 1 ? ¿Qué pasa si elimino todos los usuarios? ¿Qué sucede si elimino el primer usuario? ¿Quién podría ser el admin ?

¿O qué sucede si se me permitiera actualizar el registro de un solo usuario, pero cambio la ID a 1 y make myself the admin ? UpdateUser(1) en lugar de UpdateUser(1234)

Parece que su código podría ser vulnerable a un referencia directa de objetos exploit.

Todo lo que necesito hacer es manipular tu solicitud de javascript y eres TeH PwNz0rEd. Prueba leyendo este hilo para una mejor explicación.

    
respondido por el Mark Buffalo 04.11.2015 - 19:48
fuente

Lea otras preguntas en las etiquetas