Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Primavera 2016 Clase 10: SQL (V) El Hacker Contraataca Acceso programático Aidan Hogan aidhog@gmail.com.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Acceso a Bases de Datos con Java
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.
ARCHIVOS Y CONEXIÓN A BASE DE DATOS. FileInputStream: Clase que representa ficheros de texto accedidos en orden secuencial, byte a byte. FileWriter: Clase.
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Programación Orientada a Objetos II
JDBC Java Database Connectivity CC52N - Computación para el trabajo grupal Profesor: Nélson Baloian Por: Edgard Pineda.
REFERENCIA DIRECTA INSEGURA A OBJETOS
Java Data Base Connectivity
Structured Query Language (Lenguaje Estructurado de Consultas)
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
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.
Lenguaje Estructurado de Consultas
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.
Sistema de control de versiones CVS y Subvesion. Definición: Control de versiones Un sistema de control de versiones es un sistema de gestión de múltiples.
Curso PHP y MySQL Germán Galeano y Juan Bachiller Del 6 de Febrero al 12 de Marzo de 2012.
Diseño y Programación Orientados a Objetos1 Introducción a Java.
¿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.
Administración de Sistemas Gestores de Bases de Datos.
UNIDAD 7.
Francisco Moreno Bases de Datos II Universidad Nacional
Conferencia 9. ODBC, OLE DB y JDBC.
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
CC Bases de Datos Otoño 2017 Clase 3: ER II y Álgebra Relacional
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
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
¿Qué es una consulta? 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,
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
SQL Prof. Martín Contreras.
PHP Hypertext Preprocessor
Arquitectura de una Base de Datos
SQL: Structured Query Language
Etapa Final del Proyecto
SQL Prof. Martín Contreras.
Técnicas y Herramientas de Computación
CONEXIÓN A BASE DE DATOS
SOFTWARE DE ADMINISTRACIÓN DE BASE DE DATOS Informática Aplicada Alumna; Francis Fabiola Fernández Pérez Catedrático: Ing. Milton Obed Enamorado Universidad.
Conectividad de Bases de Datos
Lenguaje Estructurado de Consultas
Programación orientada a objetos
Unidad 7: Nivel Interno Algunos Conceptos Importantes
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Orígenes Funciones Condicionales
UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB
SQL + PHP + HTML Prof. Martín Contreras.
Join en MySQL.
CASSANDRA y CQL3.1 JUSTINO RAMÍREZ ORTEGÓN
ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS INTEGRANTES: SIAS ALVAREZ JOSUE JESUS.
ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS INTEGRANTES: -SIAS ALVAREZ -GUTIÉRREZ ROBLES -GELDRES HUAYCOCHEA.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
Nuevas Características de SQL Server 2016
INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN
CC Bases de Datos Otoño Clase 8: SQL: Acceso Programático,
Universidad Alonso de Ojeda Facultad de Ingeniería
ADMINISTRACION ORACLE LIC. EDUARDO GAYTAN. Oracle Database 11g Edition XE es un gestor de base de datos relacional Oracle ideal tanto para aquellos que.
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.
BASES DE DATOS II.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
JDBC: comunicación Java-Base 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 4: El Álgebra Relacional
Lenguaje de definición de datos. Un lenguaje de base de datos o lenguaje de definición de datos es un lenguaje proporcionado por el sistema de gestión.
Transcripción de la presentación:

Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Primavera 2016 Clase 10: SQL (V) El Hacker Contraataca Acceso programático Aidan Hogan aidhog@gmail.com

ACCESO programático (Java): Java Database Connectivity (JDBC) Parte del Capítulo 6, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)

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 string de entrada

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á todo 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 …

Inyección SQL: ¿escapar 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 antes que 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?