SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Seguridad en Programación vladimir  dot  calderon at gmail dot com (16 – mayo – 2009)
Programa ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SQL INJECTION
SQL Injection ,[object Object],[object Object],Gestor de Base de Datos Cliente/Usuario
SQL : Tipos de comandos Comandos DCL (Data Control Language Statements) Cláusulas Comandos DML (Data Manipulation Language Statements) Comandos DDL (Data Definition Language Statements) Operadores de Comparación
SQL : Comandos Básicos Comandos DDL (Data Definition Language Statements) CREATE Utilizado para crear nuevas tablas, campos e índices. DROP Empleado para eliminar tablas e índices. ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DCL (Data Control Language Statements) GRANT Utilizado para otorgar permisos. REVOKE Utilizado para revocar permisos. DENY Utilizado para denegar acceso.
SQL : Comandos Básicos Comandos DML (Data Manipulation Language Statements) SELECT Utilizado para consultar registros de una base de datos que satisfagan un criterio determinado. INSERT Utilizado para cargar lotes de datos en la base de datos en una única posición. UPDATE Utilizado para modificar los valores de los campos y registros específicos. DELETE Utilizado para eliminar registros de una tabla de base de datos.
SQL Injection ,[object Object],[object Object]
Por qué hablar de SQL Injection? ,[object Object],[object Object],[object Object]
Esquema simplificado Web Server Firewall Database Server Usuario/Intruso Usuario/Intruso Internet App.Web App.Web App.Web App.Web
Típica página web sql = “SELECT * FROM users WHERE username = '" + usuario + "' AND userpass = '" + clave + "' "
Comilla Simple : Single Quote ,[object Object],[object Object],SELECT * FROM users WHERE username =  ‘ ‘ '  AND userpass = ‘xx123'
Objetivos SQL Injection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pasando la autenticación ,[object Object],[object Object],[object Object],[object Object],[object Object],' or 1=1-- admin ' -- ' OR '' = '' --
Evadiendo la autenticación ,[object Object],SELECT * FROM users WHERE username =  ''   OR '' = ''--  AND userpass = '' SELECT * FROM users WHERE username =  ' admin '   --   AND userpass = '' ,[object Object],[object Object],SELECT * FROM users WHERE username =  ''  or 1=1-- '   AND userpass = '' ,[object Object]
Evitando SQL Injection ,[object Object],[object Object],[object Object],[object Object],[object Object]
SQL Injection .vs. PHP ,[object Object],<?php settype($offset, 'integer'); $consulta = &quot;SELECT id, nombre FROM productos  &quot; ; $consulta .= &quot;LIMIT 20 OFFSET %d;&quot;; // note el simbolo %d en la cadena de formato // usar %s no tendría sentido $consulta = sprintf($consulta, $offset); ?>
SQL Injection .vs. PHP ,[object Object],<?php $query = &quot;INSERT INTO usuarios(nombre,contr) VALUES('%s','%s');“; $consulta = sprintf($query,  pg _escape_string($nombre_usuario), md5($contrasenya)); $resultado =  pg _query($conexion, $consulta); $query = &quot;SELECT 1 FROM usuarios WHERE nombre='%s' AND contr='%s';“; $consulta = sprintf($query, pg _escape_string($nombre_usuario),  md5($contrasenya)); $resultado =  pg _query($conexion, $consulta); ?>
SQL Injection .vs. ASP.NET ,[object Object],string query= &quot;select * from Customers where city = @City“; SqlCommand  cmd  = new SqlCommand(query, conn);  SqlParameter param =  new SqlParameter();  param.ParameterName = &quot;@City&quot;; param.Value = inputCity;  cmd.Parameters.Add(param);   SqlDataReader reader = cmd.ExecuteReader();
SQL Injection .vs. JAVA ,[object Object],String query =  &quot;Select favorita from comida where gato = ?“; PreparedStatement preparedStatement = connection.prepareStatement(query);  preparedStatement.setString(1, “mufasa&quot;);   ResultSet resultSet = preparedStatement.executeQuery();  while (resultSet.next()) {  System.out.println(“La comida favorita de mufasa &quot; + resultSet.getString(1));  }
CODE EXPLOITS
Qué es un exploit? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de vulnerabilidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Algo de terminología ,[object Object],[object Object],[object Object],[object Object]
Un poco más de terminología ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Llamado a una función en C ,[object Object],Int main(int argc,  char* argv[]) { char buffer[256]; if (argc != 2) exit(1);
Llamado a una función en C ,[object Object],strcpy(buffer, argv[1]); return 0; }
Overflow y Memoria ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cómo se %$&! la memoria
Qué puede ocurrir? ,[object Object],[object Object],[object Object]
En la práctica ,[object Object],void trucho (void) {  char small[30];  gets  (small);  printf(&quot;%s&quot;, small);  }  int main() {  trucho ();  return 0;  }
Mostrando la vulnerabilidad ,[object Object],[object Object]
Busquemos las direcciones (GDB) ,[object Object]
La función trucho() ,[object Object]
Cómo vemos el overflow? ,[object Object]
Modificando la dirección ,[object Object],main() {  int i=0;  char buf[44];  for (i=0;i<=40;i+=4)  *(long *) &buf[i] =  0x84130804 ;  puts(buf);  }
Viendo el resultado ,[object Object],[object Object]
Shellcode ,[object Object],[object Object],[object Object],static char shellcode[]= &quot;eb175e89760831c088460789460cb00b89f38d&quot; &quot;4e0831d2cd80e8e4ffffff2f62696e2f736858&quot;;
Finalmente ,[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Defensiva
Por qué? ,[object Object],[object Object],NO VERIFICACION de los parámetros de ENTRADA y SALIDA de las funciones de nuestros programas   12.2.1: El insumo de data en las aplicaciones debe ser validado para asegurar que esta data sea correcta y apropiada. 12.2.2, 12.2.3 y 12.2.4: Que no hayan errores, integridad y validar output.
Políticas de programación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Logging ,[object Object],[object Object],[object Object],[object Object]
Ejemplo Logging (log4net) protected void Logon_Click(object sender, EventArgs e) { log.Info (&quot;Trata de autenticarse: &quot; + UserEmail.Text + &quot;/********&quot;); if (verificar(UserEmail.Text, UserPass.Text)) { log.Info (&quot;Usuario autenticado&quot;); …  // redirección o a Inicio } else { log.Error (&quot;Usuario &quot; + UserEmail.Text + &quot;/&quot; + UserPass.Text + &quot; incorrectos&quot;); Msg.Text = &quot;Nombre o Clave de Usuario son inválidos, o el usuario ha sido dado de baja&quot;; } }
Revisión de Pares ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Try / catch ,[object Object],try { File f = new File(“algo.txt”); FileReader fr =  new FileReader(f); } catch { log.error(“Algo pasó”); } File f = null; FileReader fr = null; try { f = new File(“algo.txt”); } catch(Exception e) { log.error(“error”, e); } try { fr = new FileReader(f); } catch(Exception e) { log.error(“error”, e); }
Beneficios en producción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generadores de código Una pequeña aplicación con una DAO
Objetivo ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modelo base ,[object Object],[object Object]
Modelo base – Abstract Factory
Resultado esperado ,[object Object],[object Object],[object Object],Factory factory = Factory.getOrCreate(); PersonaDAO dao = factory.nuevoPersonaDAO(); Persona dto = dao.seleccionar(4); dto.Nombre = “pedro”; dao.actualizar();
Modelo extensible Objeto
Modelo extensible DAO
Generando…
Et voilà!! FactoryDAO factory = FactoryDAO.Instancia; PersonaDAO dao = factory.newPersonaDAO(); Persona dto = dao.nuevo(); dto.Nombre = txtNombre.Text; dto.Numero = Convert.ToInt32(txtNumero.Text); dto.Salario = Convert.ToDouble(txtSalario.Text); dao.actualizar();
MUCHAS GRACIAS

Mais conteúdo relacionado

Mais procurados (20)

Php03 variables externas
Php03 variables externasPhp03 variables externas
Php03 variables externas
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Seguridades asp.Net
Seguridades asp.NetSeguridades asp.Net
Seguridades asp.Net
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Php basico
Php basicoPhp basico
Php basico
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de php
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablas
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 
Php
PhpPhp
Php
 
Manual php completo by_ desarrolloweb
Manual php completo by_ desarrollowebManual php completo by_ desarrolloweb
Manual php completo by_ desarrolloweb
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 
Php1
Php1Php1
Php1
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01PHP MYSQL - FIEI-UNFV Clase 01
PHP MYSQL - FIEI-UNFV Clase 01
 
Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 

Destaque

GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 II
GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 IIGERENCIA EN SALUD Clase 5 A 5 B Urp 2008 II
GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 IIAlumnos Ricardo Palma
 
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...En la exploración petrolera, la aplicación de la palinología y la geoquímica ...
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...Academia de Ingeniería de México
 
03 administração (fayolismo)
03   administração (fayolismo)03   administração (fayolismo)
03 administração (fayolismo)Elizeu Ferro
 
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)Ajeesh Mk
 
The Second Machine Age: An Industrial Revolution Powered by Digital Technologies
The Second Machine Age: An Industrial Revolution Powered by Digital TechnologiesThe Second Machine Age: An Industrial Revolution Powered by Digital Technologies
The Second Machine Age: An Industrial Revolution Powered by Digital TechnologiesCapgemini
 
A un olmo seco.alicia y sara
A un olmo seco.alicia y saraA un olmo seco.alicia y sara
A un olmo seco.alicia y sarajjdoriga
 
Inf 4 cristalizacion
Inf 4 cristalizacionInf 4 cristalizacion
Inf 4 cristalizacionlaury kiryu
 
Cadernão raciocínio lógico resolvido
Cadernão raciocínio lógico resolvidoCadernão raciocínio lógico resolvido
Cadernão raciocínio lógico resolvidoFABRÍCIO SANTOS
 
Rococo2
Rococo2Rococo2
Rococo2h8h8rr
 
Padrões de aptidão do enfermeiro forense
Padrões de aptidão do enfermeiro forensePadrões de aptidão do enfermeiro forense
Padrões de aptidão do enfermeiro forenseAlbino Gomes
 
淘寶實戰基礎營銷概念201510 08
淘寶實戰基礎營銷概念201510 08淘寶實戰基礎營銷概念201510 08
淘寶實戰基礎營銷概念201510 08Chen Terry
 
Modelo pasos proceso disciplinario 2011 2012
Modelo pasos proceso disciplinario 2011 2012Modelo pasos proceso disciplinario 2011 2012
Modelo pasos proceso disciplinario 2011 2012Alexander Bustos
 
La participacion de los padres en los habitos de estudio
La participacion de los padres en los habitos de estudioLa participacion de los padres en los habitos de estudio
La participacion de los padres en los habitos de estudioIES Luis Buñuel
 
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...Academia de Ingeniería de México
 

Destaque (20)

GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 II
GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 IIGERENCIA EN SALUD Clase 5 A 5 B Urp 2008 II
GERENCIA EN SALUD Clase 5 A 5 B Urp 2008 II
 
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...En la exploración petrolera, la aplicación de la palinología y la geoquímica ...
En la exploración petrolera, la aplicación de la palinología y la geoquímica ...
 
Arte romano
Arte romanoArte romano
Arte romano
 
A1 first level activity 1 creating your profile
A1 first level activity 1 creating your profileA1 first level activity 1 creating your profile
A1 first level activity 1 creating your profile
 
Sistema
SistemaSistema
Sistema
 
Bmfciv494m
Bmfciv494mBmfciv494m
Bmfciv494m
 
03 administração (fayolismo)
03   administração (fayolismo)03   administração (fayolismo)
03 administração (fayolismo)
 
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)
PROJECT REPORT ON EMPLOYEE SATISFACTION (sample)
 
The Second Machine Age: An Industrial Revolution Powered by Digital Technologies
The Second Machine Age: An Industrial Revolution Powered by Digital TechnologiesThe Second Machine Age: An Industrial Revolution Powered by Digital Technologies
The Second Machine Age: An Industrial Revolution Powered by Digital Technologies
 
A un olmo seco.alicia y sara
A un olmo seco.alicia y saraA un olmo seco.alicia y sara
A un olmo seco.alicia y sara
 
Contabilidad ii. dinamica de las cuentas
Contabilidad ii. dinamica de las cuentasContabilidad ii. dinamica de las cuentas
Contabilidad ii. dinamica de las cuentas
 
Inf 4 cristalizacion
Inf 4 cristalizacionInf 4 cristalizacion
Inf 4 cristalizacion
 
Cadernão raciocínio lógico resolvido
Cadernão raciocínio lógico resolvidoCadernão raciocínio lógico resolvido
Cadernão raciocínio lógico resolvido
 
Rococo2
Rococo2Rococo2
Rococo2
 
Padrões de aptidão do enfermeiro forense
Padrões de aptidão do enfermeiro forensePadrões de aptidão do enfermeiro forense
Padrões de aptidão do enfermeiro forense
 
淘寶實戰基礎營銷概念201510 08
淘寶實戰基礎營銷概念201510 08淘寶實戰基礎營銷概念201510 08
淘寶實戰基礎營銷概念201510 08
 
Modelo pasos proceso disciplinario 2011 2012
Modelo pasos proceso disciplinario 2011 2012Modelo pasos proceso disciplinario 2011 2012
Modelo pasos proceso disciplinario 2011 2012
 
La participacion de los padres en los habitos de estudio
La participacion de los padres en los habitos de estudioLa participacion de los padres en los habitos de estudio
La participacion de los padres en los habitos de estudio
 
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...
El monitoreo de campos electromagnéticos generado por infraestructura TIC en ...
 
Competencias disciplinares
Competencias  disciplinaresCompetencias  disciplinares
Competencias disciplinares
 

Semelhante a Seguridad En Programación

Inyección_sql
Inyección_sqlInyección_sql
Inyección_sqljhom123
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Eduardo Castro
 
Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todoscsaralg
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuDavid Vevelas
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpEdgar Solis
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii1 2d
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de DatosRonny Parra
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en javajent46
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESDarwin Durand
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0José Moreno
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetMoisés Cid Deza
 
Reglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows VistaReglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows Vistajuliocasal
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.comoctabio
 

Semelhante a Seguridad En Programación (20)

Inyección_sql
Inyección_sqlInyección_sql
Inyección_sql
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos
 
Inyecciones sql para todos
Inyecciones sql para todosInyecciones sql para todos
Inyecciones sql para todos
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmp
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Servicios web
Servicios webServicios web
Servicios web
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0
 
Script
ScriptScript
Script
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.Net
 
Reglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows VistaReglas de Oro para el Desarrollo con Windows Vista
Reglas de Oro para el Desarrollo con Windows Vista
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 

Último

La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdflauralizcano0319
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxhellendiaz12
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaElizabethLpezSoto
 
tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6SaraMineiropalacio
 

Último (18)

La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdftecnologiaactividad11-240323205859-a9b9b9bc.pdf
tecnologiaactividad11-240323205859-a9b9b9bc.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docxBLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
BLOG, EXCEL AVANZADO, MÉTODOS ESTADÍSTICOS..docx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Tecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestríaTecnología Educativa- presentación maestría
Tecnología Educativa- presentación maestría
 
tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6tecno 2024.pdf sara mineiro palacio 10-6
tecno 2024.pdf sara mineiro palacio 10-6
 

Seguridad En Programación

  • 1. Seguridad en Programación vladimir dot calderon at gmail dot com (16 – mayo – 2009)
  • 2.
  • 4.
  • 5. SQL : Tipos de comandos Comandos DCL (Data Control Language Statements) Cláusulas Comandos DML (Data Manipulation Language Statements) Comandos DDL (Data Definition Language Statements) Operadores de Comparación
  • 6. SQL : Comandos Básicos Comandos DDL (Data Definition Language Statements) CREATE Utilizado para crear nuevas tablas, campos e índices. DROP Empleado para eliminar tablas e índices. ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DCL (Data Control Language Statements) GRANT Utilizado para otorgar permisos. REVOKE Utilizado para revocar permisos. DENY Utilizado para denegar acceso.
  • 7. SQL : Comandos Básicos Comandos DML (Data Manipulation Language Statements) SELECT Utilizado para consultar registros de una base de datos que satisfagan un criterio determinado. INSERT Utilizado para cargar lotes de datos en la base de datos en una única posición. UPDATE Utilizado para modificar los valores de los campos y registros específicos. DELETE Utilizado para eliminar registros de una tabla de base de datos.
  • 8.
  • 9.
  • 10. Esquema simplificado Web Server Firewall Database Server Usuario/Intruso Usuario/Intruso Internet App.Web App.Web App.Web App.Web
  • 11. Típica página web sql = “SELECT * FROM users WHERE username = '&quot; + usuario + &quot;' AND userpass = '&quot; + clave + &quot;' &quot;
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Cómo se %$&! la memoria
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 41.
  • 42.
  • 43.
  • 44. Ejemplo Logging (log4net) protected void Logon_Click(object sender, EventArgs e) { log.Info (&quot;Trata de autenticarse: &quot; + UserEmail.Text + &quot;/********&quot;); if (verificar(UserEmail.Text, UserPass.Text)) { log.Info (&quot;Usuario autenticado&quot;); … // redirección o a Inicio } else { log.Error (&quot;Usuario &quot; + UserEmail.Text + &quot;/&quot; + UserPass.Text + &quot; incorrectos&quot;); Msg.Text = &quot;Nombre o Clave de Usuario son inválidos, o el usuario ha sido dado de baja&quot;; } }
  • 45.
  • 46.
  • 47.
  • 48. Generadores de código Una pequeña aplicación con una DAO
  • 49.
  • 50.
  • 51. Modelo base – Abstract Factory
  • 52.
  • 56. Et voilà!! FactoryDAO factory = FactoryDAO.Instancia; PersonaDAO dao = factory.newPersonaDAO(); Persona dto = dao.nuevo(); dto.Nombre = txtNombre.Text; dto.Numero = Convert.ToInt32(txtNumero.Text); dto.Salario = Convert.ToDouble(txtSalario.Text); dao.actualizar();