referencia directa insegura a objetos. definicion: una referencia directa a objetos ("direct...
TRANSCRIPT
![Page 1: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/1.jpg)
REFERENCIA DIRECTA INSEGURA A OBJETOS
![Page 2: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/2.jpg)
DEFINICION:
Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una referencia hacia un objeto interno de la aplicación, tales como un fichero, directorio, registro de base de datos, o una clave tal como una URL o un parámetro de formulario Web.
![Page 3: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/3.jpg)
Un atacante podría manipular este tipo de referencias en la aplicación para acceder a otros objetos sin autorización, a menos que se aplique un control de accesos como medida de prevención.
![Page 4: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/4.jpg)
ENTORNOS AFECTADOS:
Todos los entornos de desarrollo de aplicaciones de Web son vulnerables presentando referencias a objetos internos de la aplicación.
![Page 5: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/5.jpg)
VULNERABILIDAD
Muchas aplicaciones presentan a los usuarios referencias a objetos internos. Un atacante podría manipular los parámetros de entrada a la aplicación cambiando estas referencias, saltándose de esta manera un control de accesos incorrectamente desarrollado
![Page 6: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/6.jpg)
Con frecuencia, estas referencias apuntan a sistemas de ficheros y bases de datos, si bien cualquier otro elemento de la aplicación podría ser vulnerable por un problema de esta categoría.
![Page 7: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/7.jpg)
EJEMPLO:
En el ejemplo que se presenta a continuación, un atacante puede cambiar el parámetro "cartID" para obtener la información asociada a cualquier "carrito de la compra" de la aplicación.
int cartID = Integer.parseInt( request.getParameter( "cartID" ) ); String query = "SELECT * FROM table WHERE cartID=" + cartID;
![Page 8: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/8.jpg)
PROTECCION:
La mejor protección es evitar presentar al usuario cualquier referencia directa a un objeto, mediante el uso de un índice, un mapa de referencias indirectas, o cualquier otro método que sea fácil de verificar. Si es necesario utilizar una referencia directa, se deberá comprobar que el usuario está autorizado a usarla antes de hacerlo.
http://www.example.com/application?file=1
![Page 9: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/9.jpg)
En caso de que sea necesario presentar referencias a elementos de base de datos, hay que asegurarse de que las sentencias SQL y otros mecanismos de acceso a base de datos sólo permiten que se obtengan los registros autorizados:
int cartID = Integer.parseInt( request.getParameter( "cartID" ) ); User user = (User)request.getSession().getAttribute( "user" ); String query = "SELECT * FROM table WHERE cartID=" + cartID + " AND userID=" + user.getID();
![Page 10: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/10.jpg)
EJEMPLO DE UN ATAQUE
![Page 11: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/11.jpg)
![Page 12: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/12.jpg)
![Page 13: REFERENCIA DIRECTA INSEGURA A OBJETOS. DEFINICION: Una referencia directa a objetos ("direct object reference") ocurre cuando un programador expone una](https://reader035.vdocuments.co/reader035/viewer/2022062309/5665b4901a28abb57c923b8c/html5/thumbnails/13.jpg)