Seguridad en el desarrollo de aplicaciones web
-
Upload
juan-eladio-sanchez-rosas -
Category
Technology
-
view
6.615 -
download
1
description
Transcript of Seguridad en el desarrollo de aplicaciones web
![Page 1: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/1.jpg)
Seguridad en el desarrollo de aplicaciones web
Juan Eladio Sánchez RosasMozilla Perú
![Page 2: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/2.jpg)
![Page 3: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/3.jpg)
¿Seguridad en el desarrollo de aplicaciones web?
![Page 4: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/4.jpg)
Defensa en profundidad
Menos privilegios
Lo menos complicado
1
2
3
Tres principios, tres
![Page 5: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/5.jpg)
Filtrar entradas
Escapar salidas
Asegurarse que los datos de entrada son válidos
Asegurar que los datos salientes no se malinterpreten
Dos prácticas generales
![Page 6: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/6.jpg)
¿Por dónde empezar?
https://secure.flickr.com/photos/cdharrison/359763327/
![Page 7: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/7.jpg)
![Page 8: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/8.jpg)
OWASP
● Proyecto Abierto de Seguridad en Aplicaciones Web
● Comunidad abierta dedicada a habilitar a las organizaciones para desarrollar, comprar y mantener aplicaciones confiables.
![Page 9: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/9.jpg)
OWASP Top 10 2010
● Diez Riesgos Más Críticos sobre Seguridad en Aplicaciones
![Page 10: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/10.jpg)
Inyección
1
![Page 11: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/11.jpg)
Inyección - Ejemplo
● Efectuar una consulta a partir de un dato enviado como parámetro● http://caralibro.com/usuario.php?id=8262 ● $sql = 'SELECT * FROM USERS where id = '.
$_GET['id'];
● ¿Qué pasa si ingreso sentencias SQL?
1
![Page 12: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/12.jpg)
Inyección - Riesgos1
ExplotaciónFÁCIL
PrevalenciaCOMÚN
DetecciónMEDIA
ImpactoSEVERO
![Page 13: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/13.jpg)
Inyección - Nota
● Inyección no es sólo SQL● LDAP● Envío de e-mail● Comandos de SO● ...
1
![Page 14: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/14.jpg)
Inyección - Defensa
● Usar una API segura que evite el uso del intérprete o provea una interface parametrizada● $stmt = $dbh->prepare("SELECT * FROM
USERS where id = ?");● if ($stmt->execute(array($_GET['id']))) {
1
![Page 15: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/15.jpg)
Inyección - Defensa
● Si no hay una API segura validar entradas● if (is_int($_GET['id'])) {● if
(filter_var($_GET['id'],FILTER_VALIDATE_INT))
1
![Page 16: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/16.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS)
2
![Page 17: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/17.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Ejemplo
● El contenido de una página se carga imprimiendo un dato ingresado previamente● http://caralibro.com/buscar.php?
cadena=Equipos ● echo $cadena;
● ¿Qué pasa si ingreso etiquetas HTML en la variable cadena?
2
![Page 18: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/18.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Ejemplo
● ¿Y si comparto el enlace modificado?● ¿Y si vuelvo persistente el dato en la base
de datos?
2
![Page 19: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/19.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Ejemplo
2
![Page 20: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/20.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Riesgos
2
ExplotaciónMEDIA
DetecciónFÁCIL
ImpactoMODERADO
PrevalenciaMUY DIFUNDIDA
![Page 21: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/21.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Defensa
● Escapar todos los datos no confiables● htmlentities($_GET['cadena']);● filter_var($_GET['cadena'],
FILTER_SANITIZE_FULL_SPECIAL_CHARS);
2
![Page 22: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/22.jpg)
Secuencia de Comandos en Sitios Cruzados (XSS) - Defensa
● Validación de entradas positivas (permitir ciertas etiquetas)● Funciones más complicadas
2
![Page 23: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/23.jpg)
Pérdida de Autenticación y Gestión de Sesiones
3
![Page 24: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/24.jpg)
Pérdida de Autenticación y Gestión de Sesiones - Ejemplo
● Un usuario mantiene su sesión activa siguiendo enlaces que incluyen su identificador de sesión● http://caralibro.com/preferencias.php?
sessionid=52e83279678a
● ¿Si copio el enlace en otra PC, ingreso a la misma página?
3
![Page 25: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/25.jpg)
Pérdida de Autenticación y Gestión de Sesiones - Ejemplo
● Un usuario inicia sesión desde una cabina de Internet y luego cierra el navegador sin cerrar sesión
● ¿Qué sucede si luego otro usuario entra a la misma web?
3
![Page 26: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/26.jpg)
Pérdida de Autenticación y Gestión de Sesiones - Ejemplo
● Un atacante accede a la base de datos de contraseñas SIN CIFRAR
3
![Page 27: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/27.jpg)
Pérdida de Autenticación y Gestión de Sesiones - Riesgos
3
ExplotaciónMEDIA
PrevalenciaCOMÚN
DetecciónMEDIA
ImpactoSEVERO
![Page 28: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/28.jpg)
Pérdida de Autenticación y Gestión de Sesiones - Defensa
● Un fuerte control de gestión de sesiones● Tiempos límites de vigencia● ¡¡¡Cifrar las claves de tus usuarios!!!● session_regenerate_id(TRUE)
3
![Page 29: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/29.jpg)
Referencia Directa Insegura a Objetos
4
![Page 30: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/30.jpg)
Referencia Directa Insegura a Objetos - Ejemplo
● El usuario accede a información personal con una dirección que incluye su identificador● http://caralibro.com/cuenta.php?id=87392
● ¿Qué pasa si cambio el valor de id?
4
![Page 31: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/31.jpg)
Referencia Directa Insegura a Objetos - Riesgo
4
ExplotaciónFÁCIL
PrevalenciaCOMÚN
DetecciónFÁCIL
ImpactoMODERADO
![Page 32: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/32.jpg)
Referencia Directa Insegura a Objetos - Defensa
● Comprobar que el usuario tiene los privilegios para acceder al recurso● if ($_GET['id']==$_SESSION['id'])
4
![Page 33: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/33.jpg)
Falsificación de Peticiones en Sitios Cruzados (CSRF)
5
![Page 34: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/34.jpg)
Falsificación de Peticiones en Sitios Cruzados (CSRF) - Ejemplo
● Una aplicación de correo electrónico permite configurar una cuenta adicional para reenviar los mensajes● http://caralibro.com/reenviar.php?
● Qué pasa si creo una página con una etiqueta HTML que hace una llamada a la URL con otra dirección e-mail
5
![Page 35: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/35.jpg)
Falsificación de Peticiones en Sitios Cruzados (CSRF) - Riesgos
5
ExplotaciónMEDIA
DetecciónFÁCIL
ImpactoMODERADO
PrevalenciaMUY COMÚN
![Page 36: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/36.jpg)
Falsificación de Peticiones en Sitios Cruzados (CSRF) - Defensa
● Incluir token (testigo) en la petición, de preferencia de manera oculta:● <input type="hidden" name="token"
value="856c2f50ddc49fd710f14a406ec1fef652d3c9f">
5
![Page 37: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/37.jpg)
Defectuosa Configuración de Seguridad (NUEVO)
6
![Page 38: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/38.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
● Se descubre una vulnerabilidad importante en el framework empleado en la aplicación● Una actualización corrige el problema
● ¿Qué pasa si nadie actualiza la versión en la aplicación?
6
![Page 39: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/39.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
6
![Page 40: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/40.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
● Una herramienta administrativa es instalada en el servidor web y se deja accesible sin clave● http://caralibro.com/phpmyadmin
● ¿Qué sucede si comienzan a adivinar URLs?
6
![Page 41: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/41.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
● Se suben por error carpetas .SVN en el servidor de producción
● ¿Qué sucede si la configuración del servidor web permite ver archivos ocultos?
6
![Page 42: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/42.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
● La aplicación muestra el detalle completo de los errores
● ¿Y si el detalle completo muestra información relevante del funcionamiento de la aplicación?
ERROR [credit-card-db] (MySqlSystem.java:1331) - Invalid column namejava.sql.SQLException: Invalid column name ‘social_security_numbre’: select username, password, ssn from users where id = ? sun.jdbc.rowset.CachedRowSet.getColIdxByName(CachedRowSet.java:1383)\ at com.mysql.Driver.MySQLDriver.a(MySQLDriver.java:2531) at sun.jdbc.rowset.CachedRowSet.getString(CachedRowSet.java:2167) at com.ppe.db.MySqlSystem.getReciPaying(MySqlSystem.java:1318) at control.action.FindUserAction.perform(FindKeyUserAction.java:81) at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
6
![Page 43: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/43.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Ejemplo
6
![Page 44: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/44.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Riesgos
6
ExplotaciónFÁCIL
PrevalenciaCOMÚN
DetecciónFÁCIL
ImpactoMODERADO
![Page 45: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/45.jpg)
Defectuosa Configuración de Seguridad (NUEVO) - Defensa
● Definir procesos para actualizar versiones de herramientas empleadas
● Verificar que herramientas administrativas no se encuentren accesibles
● Proteger la configuración de los componentes que usa la aplicación
● Deshabilitar mensajes de errores, advertencias o información
6
![Page 46: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/46.jpg)
Almacenamiento Criptográfico Inseguro
7
![Page 47: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/47.jpg)
Almacenamiento Criptográfico Inseguro - Ejemplo
● Una aplicación almacena archivos cifrados pero la clave de cifrado es accesible.
7
![Page 48: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/48.jpg)
Almacenamiento Criptográfico Inseguro - Ejemplo
● La base de datos de claves usa algún algoritmo hash pero sin “sal” (un dato adicional que se suma al valor original)● md5($_POST['clave']);
● Un ataque de fuerza bruta demora menos en encontrar la clave si ésta no está sumada a una “sal”
7
![Page 49: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/49.jpg)
Almacenamiento Criptográfico Inseguro - Riesgos
7
ExplotaciónDIFÍCIL
DetecciónDIFÍCIL
ImpactoSEVERO
PrevalenciaPOCO COMÚN
![Page 50: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/50.jpg)
Almacenamiento Criptográfico Inseguro - Defensa
● Asegúrese de que los datos cifrados y la clave que los descrifra se encuentran en lugares distintos
7
![Page 51: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/51.jpg)
Almacenamiento Criptográfico Inseguro - Defensa
● Utilice una “sal” al usar un algoritmo hash● md5($sal.$_POST['clave']);
7
![Page 52: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/52.jpg)
Almacenamiento Criptográfico Inseguro - Defensa
● Dejar de usar algoritmos MD5, SHA1, DES.
7
![Page 53: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/53.jpg)
Almacenamiento Criptográfico Inseguro - Nota
● Usa SHA-256, AES, RSA.● hash('sha256',$sal.$_POST['clave']);
7
![Page 54: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/54.jpg)
Falla de Restricción de Acceso a URL
8
![Page 55: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/55.jpg)
Falla de Restricción de Acceso a URL - Ejemplo
● Generalmente una aplicación web tiene una sección administrativa● http://caralibro.com/admin
● ¿La sección administrativa requiere clave?
8
![Page 56: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/56.jpg)
Falla de Restricción de Acceso a URL - Riesgos
8
ExplotaciónFÁCIL
DetecciónMEDIA
ImpactoMODERADO
PrevalenciaPOCO COMÚN
![Page 57: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/57.jpg)
Falla de Restricción de Acceso a URL - Defensa
● Verificar por cada página que se requiera que el usuario tenga los privilegios suficientes para acceder a ella.● if (is_capable($_SESSION['userid'],$page))
8
![Page 58: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/58.jpg)
Protección Insuficiente en la Capa de Transporte
9
![Page 59: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/59.jpg)
Protección Insuficiente en la Capa de Transporte - Ejemplo
● Una aplicación no utiliza certificados de seguridad en la transmisión de datos sensibles
● ¿Qué sucede si un atacante lee las transmisiones del usuario?
9
![Page 60: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/60.jpg)
Protección Insuficiente en la Capa de Transporte - Ejemplo
● Una aplicación utiliza certificados de seguridad pero han sido mal configurados y muestran errores frecuentemente a los usuarios
● ¿Qué sucede si un atacante crea una página falsa y que muestra errores similares?
9
![Page 61: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/61.jpg)
Protección Insuficiente en la Capa de Transporte - Riesgos
9
ExplotaciónDIFÍCIL
PrevalenciaCOMÚN
DetecciónFÁCIL
ImpactoMODERADO
![Page 62: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/62.jpg)
Protección Insuficiente en la Capa de Transporte - Defensa
● Usar SSL para todas las páginas que utilizan datos sensibles
9
![Page 63: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/63.jpg)
Protección Insuficiente en la Capa de Transporte - Defensa
● Verificar que el certificado sea válido, no se haya vencido y esté configurado para todos los dominios usados por la aplicación.
9
![Page 64: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/64.jpg)
Redirecciones y reenvíos no validados (NUEVO)
10
![Page 65: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/65.jpg)
Redirecciones y reenvíos no validados (NUEVO) - Ejemplo
● Una aplicación tiene páginas del tipo redirect, con un parámetro URL● http://caralibro.com/ir.php?url=curso.php
● ¿Qué sucede si coloco una dirección externa en url?
10
![Page 66: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/66.jpg)
Redirecciones y reenvíos no validados (NUEVO) - Ejemplo
● Una petición envía, además de los datos normales, la url que mostrará al confirmarse la transacción● http://caralibro.com/transaccion.php?
dato1=cualquiera&exito=inicio.php
● ¿Qué sucede si cambio el valor de exito?
10
![Page 67: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/67.jpg)
Redirecciones y reenvíos no validados (NUEVO) - Riesgos
10
ExplotaciónMEDIA
DetecciónFÁCIL
ImpactoMODERADO
PrevalenciaPOCO COMÚN
![Page 68: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/68.jpg)
Redirecciones y reenvíos no validados (NUEVO) - Defensa
● Evitar usar redirecciones.● Si se utiliza, evitar que el usuario pueda
manipular el destino.● También se debe asegurar que el destino
será válido y autorizado.
10
![Page 69: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/69.jpg)
Y esto es sólo el comienzo(para ustedes :D)
https://secure.flickr.com/photos/anonymous9000/3644243073/
● Clickjacking● Plugins (Flash,
Acrobat, Java)● XSS con CSS● JSON con datos
sensibles● Remote Code
Injection● XSS + Ajax + CSRF
![Page 70: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/70.jpg)
Referencias bibliográficas● OWASP Top Ten Project [Spanish Translation]
https://www.owasp.org/index.php/Top_10
● 2010: A Web Hacking Odyssey - Top Ten Hacks of the Year http://www.slideshare.net/jeremiahgrossman/2010-a-web-hacking-odyssey-top-ten-hacks-of-the-year
● RIA And AJAX Security Workshop, Part 1 http://www.slideshare.net/astamos/ria-and-ajax-security-workshop-part-1-presentation
● Evolution Of Web Security http://www.slideshare.net/shiflett/evolution-of-web-security
● Rails Security Best Practices http://www.slideshare.net/ihower/rails-security-3299368
● Web Application Security Tutorial http://www.slideshare.net/xplodersuv/EducauseAnnualWebAppSecTutorialV3
● Web Security Horror Stories http://www.slideshare.net/simon/web-security-horror-stories-presentation
● PHP Security Consortium http://phpsec.org/
● PHP Filtros de saneamiento http://php.net/manual/es/filter.filters.sanitize.php
![Page 71: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/71.jpg)
Todo esto … ¿tiene que ver con Firefox?
https://secure.flickr.com/photos/nickstone333/3390456806/
![Page 72: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/72.jpg)
Futuras publicaciones de Firefox
Firefox (Estable), Aurora y Mobilefirefox.com/channel
Firefox Portable (ejecutable desde USB)mozilla.pe/firefox-portable
![Page 73: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/73.jpg)
Complementos en Firefox
● Hackbar
![Page 74: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/74.jpg)
Complementos en Firefox
● User Agent RG
![Page 75: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/75.jpg)
Complementos en Firefox
● PassiveRecon
![Page 76: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/76.jpg)
Complementos en Firefox
● FoxyProxy Standard
![Page 77: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/77.jpg)
Complementos en Firefox
● Tamper Data
![Page 78: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/78.jpg)
Advertencia final
La piratería en redes sin la previa autorización se considera un delito
![Page 79: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/79.jpg)
Y una cosa más ...
https://secure.flickr.com/photos/takomabibelot/2455018965/
![Page 80: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/80.jpg)
Mozilla Perú
/mozillaperu
![Page 81: Seguridad en el desarrollo de aplicaciones web](https://reader033.fdocuments.ec/reader033/viewer/2022061206/5482bff85906b5cd158b45af/html5/thumbnails/81.jpg)
Seguridad en el desarrollo de aplicaciones web
Juan Eladio Sánchez Rosasslideshare.net/juaneladio