CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático

Slides:



Advertisements
Presentaciones similares
Acceso a Bases de Datos con Java
Advertisements

Data set Data table Base de datos con servidor de base de datos String conexión Objeto conexión.
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Qué es SQL? Sentencias básicas
JDBC. Definición Java Database Conectivity El acceso a bases de datos JDBC implica abrir una conexión ejecutar comandos SQL en un sentencia procesar los.
Base de Datos Auditoría – Orientación II Cr. Oscar Nielsen
Grupo Farrera Proyecto ReportesFarrera. Problemática Apariencia en los reportes obsoleto Dificultad para el acceso a la información Dificultad para tener.
COMANDOS SQL. ¿QUÉ ES SQL? El lenguaje de consulta estructurado es un lenguaje declarativo que permite la creación, acceso e interacción de bases de datos.
En bases de datos, una consulta es el método para acceder a los datos en las bases de datos. Con las consultas se puede modificar, borrar, mostrar y agregar.
Técnicas de Estimación. La estimación de lo que costara el desarrollo del software es una actividad importante, ya que una característica que debe tener.
Usuarios y Perfiles en Mapuche ¿Dónde puede ingresar? ¿Qué cosas puede hacer dentro? ¿A qué información tiene acceso? N- Perfiles Funcionales1 - Perfil.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Francisco Moreno Bases de Datos II Universidad Nacional
Conferencia 9. ODBC, OLE DB y JDBC.
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 10: SQL (V) El Hacker Contraataca Acceso programático Aidan Hogan
CC Bases de Datos Otoño 2017 Clase 3: ER II y Álgebra Relacional
Seguridad en Bases de Datos
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
INTEGRANTES: MAURICIO GARCÍA CÁRDENAS CARLOS PALACIOS CONTRERAS
Curso Computación-Tecnología Médica
PROGRAMACIÓN ORIENTADA A OBJETOS
El punte entre tu y tu base de datos
CC Bases de Datos Primavera Clase 12: Implementación de ACID
Programación orientada a objetos
SQL: Structured Query Language
Polimorfismo y Métodos Virtuales
SQL Prof. Martín Contreras.
Técnicas y Herramientas de Computación
SQL 2: Structured Query Language
Introducción a los algoritmos
ADMINISTRACION DE LA MEMORIA
CONEXIÓN A BASE DE DATOS
Conectividad de Bases de Datos
Arquitectura de una Base de Datos
Lenguaje Estructurado de Consultas
CLIENTE : Si? Estoy llamando al departamento de Atención a Clientes?
Otros temas sobre cachés
Unidad 7: Nivel Interno Algunos Conceptos Importantes
PROYECTO DE INVESTIGACIÓN - MICROPROCESADORES
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Qué son y características generales
Orígenes Funciones Condicionales
UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB
SQL + PHP + HTML Prof. Martín Contreras.
Join en MySQL.
Noviembre18, 2017 Concepción, Chile #sqlsatconce.
ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS INTEGRANTES: SIAS ALVAREZ JOSUE JESUS.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
Noviembre18, 2017 Concepción, Chile #sqlsatconce.
Introducción a los algoritmos
CC Bases de Datos Otoño Clase 8: SQL: Acceso Programático,
Marketing Digital Autor: Ezequiel Rodolfo Tesone.
Entrevista en español.
Universidad Alonso de Ojeda Facultad de Ingeniería
TIPOS DE MODELAMIENTO BASE DE DATOS. Bases de datos jerárquicas: Este tipo de base de datos se basa en un estructura jerárquica en forma de árbol en donde.
MC Beatriz Beltrán Martínez Verano 2018
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
JDBC: comunicación Java-Base de Datos
Nelson Baloian, José A. Pino
Instrucciones PARA Ingresar a la plataforma
SQL1 7/9 Baloian Acceso a Bases de Datos
Aidan Hogan CC Bases de Datos Otoño 2019 Clase 7: Actualizaciones, Restricciones, Formas Normales Aidan.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
CC Bases de Datos Otoño Clase 10: SQL: Vistas y Disparadores
CC Bases de Datos Otoño Clase 9: SQL: Acceso Programático,
CC Bases de Datos Otoño 2019 Clase 11: Transacciones y ACID
CC Bases de Datos Otoño 2019 Clase 4: El Álgebra Relacional
Polimorfismo en C++ y Métodos Virtuales
Transcripción de la presentación:

Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Otoño 2017 Clase 8: SQL (IV) Acceso programático Aidan Hogan aidhog@gmail.com

ACCESO programático (Java): Java Database Connectivity (JDBC) Capítulo 6 | Ramakrishnan / Gehrke

Java Database Connectivity (JDBC) Externas

Veamos el ejemplo ApellidoApp.java

Consulta vs. Actualización Para hacer consultas (SELECT): Para hacer actualizaciones (INSERT; UPDATE, …)

Un problema … … no hemos “verificado” el input. ¿Hay algún problema aquí? … no hemos “verificado” el input.

Inyección SQL Un usuario malintencionado puede ingresar un string de entrada para hacer algo inesperado

Inyección SQL (muchas formas) Un usuario malintencionado puede ingresar un string de entrada para hacer algo inesperado ¿Qué hace el ejemplo? ¡Devolverá toda la tabla!

Parece estúpido pero (por ejemplo) …

https://en.wikipedia.org/wiki/SQL_injection Más ejemplos … https://en.wikipedia.org/wiki/SQL_injection

https://en.wikipedia.org/wiki/SQL_injection Más ejemplos … https://en.wikipedia.org/wiki/SQL_injection

El Jefe de HBGary …

¿Cómo podemos resolver el problema? Inyección SQL ¿Cómo podemos resolver el problema?

Inyección SQL: ¿escapar los strings? Mejor, pero sería complicado implementar la función escapar en un lenguaje de programación general y garantizar que prevente cada tipo de inyección en cada versión (futura) de cada sistema de BdD dado cualquier tipo de consulta y entrada!

Inyección SQL: ¡sentencias precompiladas! Mandamos la consulta al sistema de bases de datos y después reemplazar los parámetros con la entrada del usuario

Inyección SQL: ¡sentencias precompiladas! El sistema de base de datos La consulta es compilada por el sistema sin la entrara

Inyección SQL: ¡sentencias precompiladas! El sistema de base de datos Se reemplaza el parámetro en la sentencia precompilada (que es un plan en memoria, no un string)

Inyección SQL: ¡sentencias precompiladas! El sistema de base de datos

Sentencias precompiladas Se puede reutilizar el PreparedStatement varias veces (es más eficiente también: se compila la sentenica sólo una vez Se puede tener varios parámetros con varios tipos

Veamos el ejemplo ApellidoAppSegura.java

Preguntas?