SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
Seguridad en el desarrollo de
aplicaciones web




                  Juan Eladio Sánchez Rosas
                                Mozilla Perú
¿Seguridad en el desarrollo de
aplicaciones web?
Tres principios, tres


  1    Defensa en profundidad


  2    Menos privilegios


  3    Lo menos complicado
Dos prácticas generales



                 Filtrar entradas
   Asegurarse que los datos de entrada son válidos



                 Escapar salidas
 Asegurar que los datos salientes no se malinterpreten
¿Por dónde empezar?




         https://secure.flickr.com/photos/cdharrison/359763327/
OWASP

●   Proyecto Abierto de Seguridad en
    Aplicaciones Web
●   Comunidad abierta dedicada a habilitar a
    las organizaciones para desarrollar,
    comprar y mantener aplicaciones
    confiables.
OWASP Top 10 2010

●   Diez Riesgos Más Críticos sobre
    Seguridad en Aplicaciones
Inyección




            1
1
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
Inyección - Riesgos


                      Explotación
                        FÁCIL
                                Prevalencia
                                  COMÚN
                       Detección
                        MEDIA
                                 Impacto
                                 SEVERO
1
Inyección - Nota

●   Inyección no es sólo SQL
    ●   LDAP
    ●   Envío de e-mail
    ●   Comandos de SO
    ●   ...
1
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
Inyección - Defensa

●   Si no hay una API segura validar entradas
    ●   if (is_int($_GET['id'])) {
    ●   if
        (filter_var($_GET['id'],FILTER_VALIDATE_IN
        T))
Secuencia de Comandos en Sitios
Cruzados (XSS)




                         2
Secuencia de Comandos en Sitios
                              2

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?
Secuencia de Comandos en Sitios
                              2

Cruzados (XSS) - Ejemplo
●   ¿Y si comparto el enlace modificado?
●   ¿Y si vuelvo persistente el dato en la base
    de datos?
Secuencia de Comandos en Sitios
                              2

Cruzados (XSS) - Ejemplo
Secuencia de Comandos en Sitios
                              2

Cruzados (XSS) - Riesgos


                  Explotación
                    MEDIA
                            Prevalencia
                         MUY DIFUNDIDA
                   Detección
                    FÁCIL
                             Impacto
                           MODERADO
Secuencia de Comandos en Sitios
                              2

Cruzados (XSS) - Defensa
●   Escapar todos los datos no confiables
    ●   htmlentities($_GET['cadena']);
    ●   filter_var($_GET['cadena'],
        FILTER_SANITIZE_FULL_SPECIAL_CHAR
        S);
Secuencia de Comandos en Sitios
                              2

Cruzados (XSS) - Defensa
●   Validación de entradas positivas (permitir
    ciertas etiquetas)
    ●   Funciones más complicadas
Pérdida de Autenticación y Gestión
de Sesiones




                           3
Pérdida de Autenticación y Gestión
                                3

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?
Pérdida de Autenticación y Gestión
                                3

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?
Pérdida de Autenticación y Gestión
                                3

de Sesiones - Ejemplo
●   Un atacante accede a la base de datos de
    contraseñas SIN CIFRAR
Pérdida de Autenticación y Gestión
                                3

de Sesiones - Riesgos


                   Explotación
                     MEDIA
                             Prevalencia
                               COMÚN
                    Detección
                     MEDIA
                              Impacto
                              SEVERO
Pérdida de Autenticación y Gestión
                                3

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)
Referencia Directa Insegura
a Objetos




                              4
Referencia Directa Insegura                        4

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?
Referencia Directa Insegura           4

a Objetos - Riesgo


                   Explotación
                     FÁCIL
                             Prevalencia
                               COMÚN
                    Detección
                     FÁCIL
                              Impacto
                            MODERADO
Referencia Directa Insegura                 4

a Objetos - Defensa
●   Comprobar que el usuario tiene los
    privilegios para acceder al recurso
    ●   if ($_GET['id']==$_SESSION['id'])
Falsificación de Peticiones en Sitios
Cruzados (CSRF)




                             5
Falsificación de Peticiones en Sitios
                                   5

Cruzados (CSRF) - Ejemplo
●   Una aplicación de correo electrónico
    permite configurar una cuenta adicional
    para reenviar los mensajes
    ●   http://caralibro.com/reenviar.php?
        mail=root@local.com
●   Qué pasa si creo una página con una
    etiqueta HTML que hace una llamada a la
    URL con otra dirección e-mail
Falsificación de Peticiones en Sitios
                                   5

Cruzados (CSRF) - Riesgos


                    Explotación
                      MEDIA
                              Prevalencia
                             MUY COMÚN
                     Detección
                      FÁCIL
                               Impacto
                             MODERADO
Falsificación de Peticiones en Sitios
                                   5

Cruzados (CSRF) - Defensa
●   Incluir token (testigo) en la petición, de
    preferencia de manera oculta:
    ●   <input type="hidden" name="token"
        value="856c2f50ddc49fd710f14a406ec1fef6
        52d3c9f">
Defectuosa Configuración de
Seguridad (NUEVO)




                          6
Defectuosa Configuración de                     6

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?
Defectuosa Configuración de   6

Seguridad (NUEVO) - Ejemplo
Defectuosa Configuración de                  6

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?
Defectuosa Configuración de                  6

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?
Defectuosa Configuración de                                               6

 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 name
java.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)
Defectuosa Configuración de   6

Seguridad (NUEVO) - Ejemplo
Defectuosa Configuración de          6

Seguridad (NUEVO) - Riesgos


                  Explotación
                    FÁCIL
                            Prevalencia
                              COMÚN
                   Detección
                    FÁCIL
                             Impacto
                           MODERADO
Defectuosa Configuración de                6

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
Almacenamiento Criptográfico
Inseguro




                         7
Almacenamiento Criptográfico               7

Inseguro - Ejemplo
●   Una aplicación almacena archivos
    cifrados pero la clave de cifrado es
    accesible.
Almacenamiento Criptográfico                   7

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”
Almacenamiento Criptográfico        7

Inseguro - Riesgos


                  Explotación
                    DIFÍCIL
                            Prevalencia
                          POCO COMÚN
                   Detección
                    DIFÍCIL
                             Impacto
                             SEVERO
Almacenamiento Criptográfico              7

Inseguro - Defensa
●   Asegúrese de que los datos cifrados y la
    clave que los descrifra se encuentran en
    lugares distintos
Almacenamiento Criptográfico                 7

Inseguro - Defensa
●   Utilice una “sal” al usar un algoritmo hash
    ●   md5($sal.$_POST['clave']);
Almacenamiento Criptográfico              7

Inseguro - Defensa
●   Dejar de usar algoritmos MD5, SHA1,
    DES.
Almacenamiento Criptográfico                   7

Inseguro - Nota
●   Usa SHA-256, AES, RSA.
    ●   hash('sha256',$sal.$_POST['clave']);
Falla de Restricción de Acceso a
URL




                            8
Falla de Restricción de Acceso a          8

URL - Ejemplo
●   Generalmente una aplicación web tiene
    una sección administrativa
    ●   http://caralibro.com/admin
●   ¿La sección administrativa requiere
    clave?
Falla de Restricción de Acceso a     8

URL - Riesgos


                   Explotación
                     FÁCIL
                             Prevalencia
                           POCO COMÚN
                    Detección
                     MEDIA
                              Impacto
                            MODERADO
Falla de Restricción de Acceso a               8

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))
Protección Insuficiente en la Capa
de Transporte




                            9
Protección Insuficiente en la Capa
                                 9

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?
Protección Insuficiente en la Capa
                                 9

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?
Protección Insuficiente en la Capa
                                 9

de Transporte - Riesgos


                   Explotación
                     DIFÍCIL
                             Prevalencia
                               COMÚN
                    Detección
                     FÁCIL
                              Impacto
                             MODERADO
Protección Insuficiente en la Capa
                                 9

de Transporte - Defensa
●   Usar SSL para todas las páginas que
    utilizan datos sensibles
Protección Insuficiente en la Capa
                                 9

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.
Redirecciones y reenvíos no
validados (NUEVO)




                          10
Redirecciones y reenvíos no                         10

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?
Redirecciones y reenvíos no                     10

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?
Redirecciones y reenvíos no         10

validados (NUEVO) - Riesgos


                  Explotación
                    MEDIA
                            Prevalencia
                          POCO COMÚN
                   Detección
                    FÁCIL
                             Impacto
                           MODERADO
Redirecciones y reenvíos no                  10

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.
Y esto es sólo el comienzo
(para ustedes :D)     Clickjacking
                                ●


                                ●   Plugins (Flash,
                                    Acrobat, Java)
                                ●   XSS con CSS
                                ●   JSON con datos
                                    sensibles
                                ●   Remote Code
                                    Injection
                                ●   XSS + Ajax + CSRF
         https://secure.flickr.com/photos/anonymous9000/3644243073/
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
https://secure.flickr.com/photos/nickstone333/3390456806/




Todo esto … ¿tiene que
ver con Firefox?
Futuras publicaciones de Firefox




Firefox (Estable), Aurora y Mobile
firefox.com/channel


Firefox Portable (ejecutable desde USB)
mozilla.pe/firefox-portable
Complementos en Firefox

●   Hackbar
Complementos en Firefox

●   User Agent RG
Complementos en Firefox

●   PassiveRecon
Complementos en Firefox

●   FoxyProxy Standard
Complementos en Firefox

●   Tamper Data
Advertencia final




    La piratería en redes sin la previa
   autorización se considera un delito
Y una cosa más ...




   https://secure.flickr.com/photos/takomabibelot/2455018965/
Mozilla Perú


      /mozillaperu
Seguridad en el desarrollo de
aplicaciones web




                  Juan Eladio Sánchez Rosas
                    slideshare.net/juaneladio

Más contenido relacionado

La actualidad más candente

Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Alonso Caballero
 
Owasp top 10 2010 final (spanish)
Owasp top 10   2010 final (spanish)Owasp top 10   2010 final (spanish)
Owasp top 10 2010 final (spanish)
Fabio Cerullo
 

La actualidad más candente (20)

sistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar websistemas de seguridad para desarrollar web
sistemas de seguridad para desarrollar web
 
Seguridad de Aplicaciones Web
Seguridad de Aplicaciones WebSeguridad de Aplicaciones Web
Seguridad de Aplicaciones Web
 
Argentesting 2017 - Proyecto OWASP Top 10
Argentesting 2017 - Proyecto OWASP Top 10Argentesting 2017 - Proyecto OWASP Top 10
Argentesting 2017 - Proyecto OWASP Top 10
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Resumen curso de seguridad para desarrolladores de aplicaciones web y móviles...
Resumen curso de seguridad para desarrolladores de aplicaciones web y móviles...Resumen curso de seguridad para desarrolladores de aplicaciones web y móviles...
Resumen curso de seguridad para desarrolladores de aplicaciones web y móviles...
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Owasp Top10 Spanish
Owasp Top10 SpanishOwasp Top10 Spanish
Owasp Top10 Spanish
 
as
asas
as
 
Hackers en los sistemas de las administraciones públicas
Hackers en los sistemas de las administraciones públicasHackers en los sistemas de las administraciones públicas
Hackers en los sistemas de las administraciones públicas
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
 
Owasp top ten 2019
Owasp top ten 2019Owasp top ten 2019
Owasp top ten 2019
 
Hacking web con OWASP
Hacking web con OWASPHacking web con OWASP
Hacking web con OWASP
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Owasp top 10 2010 final (spanish)
Owasp top 10   2010 final (spanish)Owasp top 10   2010 final (spanish)
Owasp top 10 2010 final (spanish)
 
Cer tuy capacitaciones2011_v1
Cer tuy capacitaciones2011_v1Cer tuy capacitaciones2011_v1
Cer tuy capacitaciones2011_v1
 
10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...
10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...
10 riesgos más críticos que deben afrontar las organizaciones sobre sus aplic...
 
Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"
Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"
Webinar Gratuito: "Escanear Vulnerabilidades Web con Zed Attack Proxy"
 
Owasp top 10 2017
Owasp top 10 2017Owasp top 10 2017
Owasp top 10 2017
 
Seguridad en los sistemas web
Seguridad en los sistemas webSeguridad en los sistemas web
Seguridad en los sistemas web
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 

Similar a Seguridad en el desarrollo de aplicaciones web

Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
William Suárez
 
Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
guestb40a1b0
 
Seguridad en redes Unidad V
Seguridad en redes Unidad VSeguridad en redes Unidad V
Seguridad en redes Unidad V
Jose A. Garcia
 
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologíasUNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
UNEG-AS
 
Investigacion de seguridad
Investigacion de seguridadInvestigacion de seguridad
Investigacion de seguridad
Julio Cesar
 

Similar a Seguridad en el desarrollo de aplicaciones web (20)

Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
 
Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 
Securiza tu red con Snort y sus amigos
Securiza tu red con Snort y sus amigosSecuriza tu red con Snort y sus amigos
Securiza tu red con Snort y sus amigos
 
Concientización de Riesgos de Ciberseguridad En Wordpress.
Concientización de Riesgos de Ciberseguridad En Wordpress.Concientización de Riesgos de Ciberseguridad En Wordpress.
Concientización de Riesgos de Ciberseguridad En Wordpress.
 
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
 
Seguridad en redes Unidad V
Seguridad en redes Unidad VSeguridad en redes Unidad V
Seguridad en redes Unidad V
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación Web
 
Seguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPSeguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASP
 
SEGUIRIDAD DE BASE DE DATOS
SEGUIRIDAD DE BASE DE DATOSSEGUIRIDAD DE BASE DE DATOS
SEGUIRIDAD DE BASE DE DATOS
 
Incorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de AplicacionesIncorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 
Bajo Ataque 2.pptx
Bajo Ataque 2.pptxBajo Ataque 2.pptx
Bajo Ataque 2.pptx
 
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologíasUNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
UNEG-AS 2012-Inf11: Métodos usados para abusar de las nuevas tecnologías
 
Man in the middle aplicado a la seguridad
Man in the middle aplicado a la seguridadMan in the middle aplicado a la seguridad
Man in the middle aplicado a la seguridad
 
Seguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio ElectrónicoSeguridad en Aplicaciones Web y Comercio Electrónico
Seguridad en Aplicaciones Web y Comercio Electrónico
 
Mod security
Mod securityMod security
Mod security
 
Investigacion de seguridad
Investigacion de seguridadInvestigacion de seguridad
Investigacion de seguridad
 
Base de datos
Base de datosBase de datos
Base de datos
 
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 

Más de Juan Eladio Sánchez Rosas

Más de Juan Eladio Sánchez Rosas (20)

Seguridad informatica para docentes
Seguridad informatica para docentesSeguridad informatica para docentes
Seguridad informatica para docentes
 
Introducción a la computación en la nube
Introducción a la computación en la nubeIntroducción a la computación en la nube
Introducción a la computación en la nube
 
Curso: Diseño de apps y webs móviles - Parte 2
Curso: Diseño de apps y webs móviles - Parte 2Curso: Diseño de apps y webs móviles - Parte 2
Curso: Diseño de apps y webs móviles - Parte 2
 
Curso: Diseño de apps y webs móviles - Parte 1
Curso: Diseño de apps y webs móviles - Parte 1Curso: Diseño de apps y webs móviles - Parte 1
Curso: Diseño de apps y webs móviles - Parte 1
 
Cómo crear comunidades tecnológicas disruptivas - Coneisc Arequipa 2015
Cómo crear comunidades tecnológicas disruptivas - Coneisc Arequipa 2015Cómo crear comunidades tecnológicas disruptivas - Coneisc Arequipa 2015
Cómo crear comunidades tecnológicas disruptivas - Coneisc Arequipa 2015
 
Encuesta Anual: Perfil del Desarrollador Web Perú 2015
Encuesta Anual: Perfil del Desarrollador Web Perú 2015Encuesta Anual: Perfil del Desarrollador Web Perú 2015
Encuesta Anual: Perfil del Desarrollador Web Perú 2015
 
iPhone v Android: Lecciones de la revolución móvil
iPhone v Android: Lecciones de la revolución móviliPhone v Android: Lecciones de la revolución móvil
iPhone v Android: Lecciones de la revolución móvil
 
App-ocalipsis: El fin de las aplicaciones móviles
App-ocalipsis: El fin de las aplicaciones móvilesApp-ocalipsis: El fin de las aplicaciones móviles
App-ocalipsis: El fin de las aplicaciones móviles
 
Taller Diseno de apps móviles
Taller Diseno de apps móvilesTaller Diseno de apps móviles
Taller Diseno de apps móviles
 
Muchas voces, una Comunidad Mozilla
Muchas voces, una Comunidad MozillaMuchas voces, una Comunidad Mozilla
Muchas voces, una Comunidad Mozilla
 
Tecnologias Mozilla en la batalla por el futuro de la web
Tecnologias Mozilla en la batalla por el futuro de la webTecnologias Mozilla en la batalla por el futuro de la web
Tecnologias Mozilla en la batalla por el futuro de la web
 
La web abierta y Mozilla
La web abierta y MozillaLa web abierta y Mozilla
La web abierta y Mozilla
 
Desarrollo de aplicaciones web móviles
Desarrollo de aplicaciones web móvilesDesarrollo de aplicaciones web móviles
Desarrollo de aplicaciones web móviles
 
Herramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abiertaHerramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abierta
 
Prueba dos versiones de Firefox al mismo tiempo
Prueba dos versiones de Firefox al mismo tiempoPrueba dos versiones de Firefox al mismo tiempo
Prueba dos versiones de Firefox al mismo tiempo
 
Estudio: Situación de los desarrolladores web en el Perú 2012
Estudio: Situación de los desarrolladores web en el Perú 2012Estudio: Situación de los desarrolladores web en el Perú 2012
Estudio: Situación de los desarrolladores web en el Perú 2012
 
Firefox Next y otras iniciativas de Mozilla
Firefox Next y otras iniciativas de MozillaFirefox Next y otras iniciativas de Mozilla
Firefox Next y otras iniciativas de Mozilla
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOY
 
Buenas prácticas de usabilidad para el desarrollo web
Buenas prácticas de usabilidad para el desarrollo webBuenas prácticas de usabilidad para el desarrollo web
Buenas prácticas de usabilidad para el desarrollo web
 
Mozilla Labs: Reinventando la web
Mozilla Labs: Reinventando la webMozilla Labs: Reinventando la web
Mozilla Labs: Reinventando la web
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 

Último (18)

presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Seguridad en el desarrollo de aplicaciones web

  • 1. Seguridad en el desarrollo de aplicaciones web Juan Eladio Sánchez Rosas Mozilla Perú
  • 2.
  • 3. ¿Seguridad en el desarrollo de aplicaciones web?
  • 4. Tres principios, tres 1 Defensa en profundidad 2 Menos privilegios 3 Lo menos complicado
  • 5. Dos prácticas generales Filtrar entradas Asegurarse que los datos de entrada son válidos Escapar salidas Asegurar que los datos salientes no se malinterpreten
  • 6. ¿Por dónde empezar? https://secure.flickr.com/photos/cdharrison/359763327/
  • 7.
  • 8. OWASP ● Proyecto Abierto de Seguridad en Aplicaciones Web ● Comunidad abierta dedicada a habilitar a las organizaciones para desarrollar, comprar y mantener aplicaciones confiables.
  • 9. OWASP Top 10 2010 ● Diez Riesgos Más Críticos sobre Seguridad en Aplicaciones
  • 11. 1 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?
  • 12. 1 Inyección - Riesgos Explotación FÁCIL Prevalencia COMÚN Detección MEDIA Impacto SEVERO
  • 13. 1 Inyección - Nota ● Inyección no es sólo SQL ● LDAP ● Envío de e-mail ● Comandos de SO ● ...
  • 14. 1 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']))) {
  • 15. 1 Inyección - Defensa ● Si no hay una API segura validar entradas ● if (is_int($_GET['id'])) { ● if (filter_var($_GET['id'],FILTER_VALIDATE_IN T))
  • 16. Secuencia de Comandos en Sitios Cruzados (XSS) 2
  • 17. Secuencia de Comandos en Sitios 2 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?
  • 18. Secuencia de Comandos en Sitios 2 Cruzados (XSS) - Ejemplo ● ¿Y si comparto el enlace modificado? ● ¿Y si vuelvo persistente el dato en la base de datos?
  • 19. Secuencia de Comandos en Sitios 2 Cruzados (XSS) - Ejemplo
  • 20. Secuencia de Comandos en Sitios 2 Cruzados (XSS) - Riesgos Explotación MEDIA Prevalencia MUY DIFUNDIDA Detección FÁCIL Impacto MODERADO
  • 21. Secuencia de Comandos en Sitios 2 Cruzados (XSS) - Defensa ● Escapar todos los datos no confiables ● htmlentities($_GET['cadena']); ● filter_var($_GET['cadena'], FILTER_SANITIZE_FULL_SPECIAL_CHAR S);
  • 22. Secuencia de Comandos en Sitios 2 Cruzados (XSS) - Defensa ● Validación de entradas positivas (permitir ciertas etiquetas) ● Funciones más complicadas
  • 23. Pérdida de Autenticación y Gestión de Sesiones 3
  • 24. Pérdida de Autenticación y Gestión 3 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?
  • 25. Pérdida de Autenticación y Gestión 3 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?
  • 26. Pérdida de Autenticación y Gestión 3 de Sesiones - Ejemplo ● Un atacante accede a la base de datos de contraseñas SIN CIFRAR
  • 27. Pérdida de Autenticación y Gestión 3 de Sesiones - Riesgos Explotación MEDIA Prevalencia COMÚN Detección MEDIA Impacto SEVERO
  • 28. Pérdida de Autenticación y Gestión 3 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)
  • 30. Referencia Directa Insegura 4 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?
  • 31. Referencia Directa Insegura 4 a Objetos - Riesgo Explotación FÁCIL Prevalencia COMÚN Detección FÁCIL Impacto MODERADO
  • 32. Referencia Directa Insegura 4 a Objetos - Defensa ● Comprobar que el usuario tiene los privilegios para acceder al recurso ● if ($_GET['id']==$_SESSION['id'])
  • 33. Falsificación de Peticiones en Sitios Cruzados (CSRF) 5
  • 34. Falsificación de Peticiones en Sitios 5 Cruzados (CSRF) - Ejemplo ● Una aplicación de correo electrónico permite configurar una cuenta adicional para reenviar los mensajes ● http://caralibro.com/reenviar.php? mail=root@local.com ● Qué pasa si creo una página con una etiqueta HTML que hace una llamada a la URL con otra dirección e-mail
  • 35. Falsificación de Peticiones en Sitios 5 Cruzados (CSRF) - Riesgos Explotación MEDIA Prevalencia MUY COMÚN Detección FÁCIL Impacto MODERADO
  • 36. Falsificación de Peticiones en Sitios 5 Cruzados (CSRF) - Defensa ● Incluir token (testigo) en la petición, de preferencia de manera oculta: ● <input type="hidden" name="token" value="856c2f50ddc49fd710f14a406ec1fef6 52d3c9f">
  • 38. Defectuosa Configuración de 6 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?
  • 39. Defectuosa Configuración de 6 Seguridad (NUEVO) - Ejemplo
  • 40. Defectuosa Configuración de 6 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?
  • 41. Defectuosa Configuración de 6 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?
  • 42. Defectuosa Configuración de 6 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 name java.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)
  • 43. Defectuosa Configuración de 6 Seguridad (NUEVO) - Ejemplo
  • 44. Defectuosa Configuración de 6 Seguridad (NUEVO) - Riesgos Explotación FÁCIL Prevalencia COMÚN Detección FÁCIL Impacto MODERADO
  • 45. Defectuosa Configuración de 6 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
  • 47. Almacenamiento Criptográfico 7 Inseguro - Ejemplo ● Una aplicación almacena archivos cifrados pero la clave de cifrado es accesible.
  • 48. Almacenamiento Criptográfico 7 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”
  • 49. Almacenamiento Criptográfico 7 Inseguro - Riesgos Explotación DIFÍCIL Prevalencia POCO COMÚN Detección DIFÍCIL Impacto SEVERO
  • 50. Almacenamiento Criptográfico 7 Inseguro - Defensa ● Asegúrese de que los datos cifrados y la clave que los descrifra se encuentran en lugares distintos
  • 51. Almacenamiento Criptográfico 7 Inseguro - Defensa ● Utilice una “sal” al usar un algoritmo hash ● md5($sal.$_POST['clave']);
  • 52. Almacenamiento Criptográfico 7 Inseguro - Defensa ● Dejar de usar algoritmos MD5, SHA1, DES.
  • 53. Almacenamiento Criptográfico 7 Inseguro - Nota ● Usa SHA-256, AES, RSA. ● hash('sha256',$sal.$_POST['clave']);
  • 54. Falla de Restricción de Acceso a URL 8
  • 55. Falla de Restricción de Acceso a 8 URL - Ejemplo ● Generalmente una aplicación web tiene una sección administrativa ● http://caralibro.com/admin ● ¿La sección administrativa requiere clave?
  • 56. Falla de Restricción de Acceso a 8 URL - Riesgos Explotación FÁCIL Prevalencia POCO COMÚN Detección MEDIA Impacto MODERADO
  • 57. Falla de Restricción de Acceso a 8 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))
  • 58. Protección Insuficiente en la Capa de Transporte 9
  • 59. Protección Insuficiente en la Capa 9 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?
  • 60. Protección Insuficiente en la Capa 9 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?
  • 61. Protección Insuficiente en la Capa 9 de Transporte - Riesgos Explotación DIFÍCIL Prevalencia COMÚN Detección FÁCIL Impacto MODERADO
  • 62. Protección Insuficiente en la Capa 9 de Transporte - Defensa ● Usar SSL para todas las páginas que utilizan datos sensibles
  • 63. Protección Insuficiente en la Capa 9 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.
  • 64. Redirecciones y reenvíos no validados (NUEVO) 10
  • 65. Redirecciones y reenvíos no 10 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?
  • 66. Redirecciones y reenvíos no 10 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?
  • 67. Redirecciones y reenvíos no 10 validados (NUEVO) - Riesgos Explotación MEDIA Prevalencia POCO COMÚN Detección FÁCIL Impacto MODERADO
  • 68. Redirecciones y reenvíos no 10 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.
  • 69. Y esto es sólo el comienzo (para ustedes :D) Clickjacking ● ● Plugins (Flash, Acrobat, Java) ● XSS con CSS ● JSON con datos sensibles ● Remote Code Injection ● XSS + Ajax + CSRF https://secure.flickr.com/photos/anonymous9000/3644243073/
  • 70. 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
  • 72. Futuras publicaciones de Firefox Firefox (Estable), Aurora y Mobile firefox.com/channel Firefox Portable (ejecutable desde USB) mozilla.pe/firefox-portable
  • 76. Complementos en Firefox ● FoxyProxy Standard
  • 78. Advertencia final La piratería en redes sin la previa autorización se considera un delito
  • 79. Y una cosa más ... https://secure.flickr.com/photos/takomabibelot/2455018965/
  • 80. Mozilla Perú /mozillaperu
  • 81. Seguridad en el desarrollo de aplicaciones web Juan Eladio Sánchez Rosas slideshare.net/juaneladio