CC Bases de Datos Otoño Clase 9: SQL: Acceso Programático,

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.
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Structured Query Language (Lenguaje Estructurado de Consultas)
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.
1 Clase 23: técnicas (3/4) orden recursivo iic1102 – introducción a la programación.
Grupo Farrera Proyecto ReportesFarrera. Problemática Apariencia en los reportes obsoleto Dificultad para el acceso a la información Dificultad para tener.
Curso PHP y MySQL Germán Galeano y Juan Bachiller Del 6 de Febrero al 12 de Marzo de 2012.
¿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.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Diseño por Contrato Tecnología de Objetos Raúl Herrera A.
Conferencia 9. ODBC, OLE DB y JDBC.
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
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
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
Convenciones de nomenclatura y diseño
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,
Proyecto: Aplicación Web
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
Conectividad de Bases de Datos
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
Unidad 1: Introduccion Leccion 3: Input.
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.
ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS INTEGRANTES: SIAS ALVAREZ JOSUE JESUS.
CC Bases de Datos Otoño Clase 3: Modelo Entidad-Relación (II)
Lo que necesitas conocer sobre el ISOlucion
Nuevas Características de SQL Server 2016
CÓMO RESOLVER LOS PROBLEMAS
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
TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN II
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.
“Conceptos Básicos de Java”
BASES DE DATOS II.
Inserte aquí texto ## Inserte aquí texto ## Inserte aquí texto ## Inserte aquí texto ## Inserte aquí texto.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
Capítulo 7 USO DE BASES DE DATOS OBJETO- RELACIONALES.
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 2019 Clase 4: El Álgebra Relacional
Prof. Marcos Heredia.  Primitivos y No Primitivos.
Conceptos básicos II. – Game Maker. –.
El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. La sigla que se conoce como SQL corresponde.
Transcripción de la presentación:

Aidan Hogan aidhog@gmail.com CC3201-1 Bases de Datos Otoño 2019 Clase 9: SQL: Acceso Programático, Inyecciones, Seguridad Aidan Hogan aidhog@gmail.com

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

Java Database Connectivity (JDBC) Externas

Veremos 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

¡Devolverá toda la tabla! Inyección SQL 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 ... https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf

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? ¿Cómo podemos resolver el problema? 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: ¿escapar los strings? ¿Cómo podemos resolver el problema? 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 pre-compiladas! Mandamos la consulta al sistema de bases de datos y después se reemplazarán los parámetros con la entrada del usuario

Inyección SQL: ¡sentencias pre-compiladas! El sistema de base de datos La consulta es compilada por el sistema sin la entrada

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

Inyección SQL: ¡sentencias pre-compiladas! El sistema de base de datos

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

Preguntas?