SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Seguridad en Aplicaciones Web
 con Spring Security 3 [Taller]
         Fernando Redondo Ramírez
              @pronoide_fer
Índice
•   ¿Quién soy?
•   Breve Introducción a Spring Security 3
•   ¡Manos a la obra!
•   Más allá del taller
•   Enlaces
•   Preguntas
¿Quién soy?



• Emprendedor y empresario en Pronoide
  desde 2003
• Formador Java & Friends
• Haciendo cosas con Java desde 1999
• Ingeniero técnico informático
• Casado y padre de dos hijos
 (la segunda hija podría estar naciendo ahora… ¡uff!)
Breve Introducción a Spring Security 3
• ¿La seguridad JEE no es estándar? Sí, pero:
   1. Seguridad JEE ⇒ Basada en restricciones
      (Constraints)
   2. Seguridad JEE ⇒ Exclusivamente perimetral
   3. Seguridad JEE ⇒ Funcionalidades dependientes de
      cada Servidor de Aplicaciones (Realms, SSO, Cifrado,
      etc.)
   4. Seguridad JEE ⇒ Aplicaciones JEE no transportables
      entre plataformas o versiones del mismo servidor
   5. Seguridad JEE ⇒ Difícil de adaptar a para
      aplicaciones Web 2.0 y/o nuevos requerimientos
Breve Introducción a Spring Security 3
• ¿La seguridad JEE no es estándar? Sí, pero:
   1. Spring Security ⇒ Basada en otorgar permisos
   2. Spring Security ⇒ Perimetral y jerárquica
   3. Spring Security ⇒ Funcionalidades
      independientes del Servidor de Aplicaciones
   4. Spring Security ⇒ Aplicaciones JEE
      transportables
   5. Spring Security ⇒ Versátil y adaptable
Breve Introducción a Spring Security 3
    Arquitectura (¡y se acabó!)
          Peticiones Web                  Métodos Negocio
                                     Business Object (Method) Security
           Web/HTTP Security
                                       Proxies/Interceptores de
    Cadena de filtros de seguridad
                                              seguridad


    Seguridad Aplicaciones             SecurityContextHolder
                                          SecurityContext
       Spring Security 3                  Authentication
                                         GrantedAuthority



            Autentificación                    Autorización
         AuthenticationManager            AccessDecisionManager
         AuthenticationProviders                  Voters
          UserDetailsService             AfterInvocationManager
¡Manos a la obra!

                               ¡¡Necesito seguridad
                                en la aplicación de
                                los Expedientes X!!




Notas
1. Descargar http://pronoide.com/descargas/fbi.war
2. Importar war en STS 2.8
3. Ejecutar la aplicación
4. Entrar en http://localhost:8080/fbi/index.jsp
Etapa: Configurar Spring Security en la aplicación web
i.   Configurar el filtro interceptor de las peticiones web
Etapa: Configurar Spring Security en la aplicación web
ii. Crear el fichero para la configuración de seguridad
    con una seguridad mínima y cargarlo en el web.xml
Etapa: Configurar Spring Security en la aplicación web
iii. Configurar el login/logout explícitamente




iv. Solucionar problemas de recursos, CSS e imágenes
Etapa: Configurar Spring Security en la aplicación web
v. Proteger contraseñas de los usuarios encriptándolas
  •   Generar claves con Spring Basic Crypto Module




  •   Poner las claves cifradas y configurar el algoritmo y el salt
Etapa: Configurar Spring Security en la aplicación web
vi. Añadir funcionalidad “Remember Me”
Etapa: Configurar Spring Security en la aplicación web
vii. Seguridad en el canal de transporte (HTTPS)
  •   Configurar restricciones y puertos




  •   Crear conector SSL en Servidor
Etapa: Configurar Spring Security en la aplicación web
viii. Control de la expiración de sesiones




ix. Control de la concurrencia de sesiones
Etapa: Configurar Spring Security en la aplicación web
x. Uso de la librería de etiquetas (Spring Security Taglibs)
Etapa: Configurar Spring Security en la aplicación web
xi. Uso Expresiones SpEL para proteger URL’s




xii. Uso Expresiones SpEL con etiquetas Security Taglib
¡Pero que has hecho!

                    ¿¿Sólo hay seguridad
                      en el acceso a los
                       recursos web??




      Prueba y verás:
      https://localhost:8443/fbi/expedientesx
      /clasificar?id=1
Etapa: Configurar Spring Security en Servicios de Negocio
 xiii. Seguridad en la invocación de métodos de negocio
       con anotaciones Spring Security
Etapa: Configurar Spring Security en Servicios de Negocio
 xiv. Seguridad en la invocación de métodos de negocio
      con anotaciones JSR-250
Etapa: Configurar Spring Security en Servicios de Negocio
 xv. Seguridad en la invocación de métodos de negocio
     con Pointcuts de AspectJ
Etapa: Configurar Spring Security en Servicios de Negocio
 xvi. Seguridad en la invocación de métodos de negocio
      con Expresiones SpEL (Preinvocación)
Mucho mejor pero…
      ¿¿Qué haces consultando
   expedientes que no son tuyos??
   ¿¿Cómo es que puedes ver el de
           tu hermana??
        ¿¿… y a estas horas??
Etapa: Configurar Spring Security de forma jerárquica
  xvii.Seguridad en la invocación de métodos de negocio
       con Expresiones SpEL (Postinvocación)
Etapa: Configurar Spring Security de forma jerárquica
  xviii.Seguridad en la invocación de métodos de negocio
       con Expresiones SpEL (Filtro de resultados)
Etapa: Configurar Spring Security de forma jerárquica
  xix. Utilización del sistema de votantes
    •   Codificar un votante
Etapa: Configurar Spring Security de forma jerárquica
  xix. Utilización del sistema de votantes (cont.)
    •   Explicitar la configuración del espacio de nombres Security




    •   Personalizar la configuración del accessDecisionManager
Etapa: Configurar Spring Security de forma jerárquica
  xx. Personalizar la cadena de filtros de seguridad
    •   Crear un filtro para recordar el usuario que hace login
Etapa: Configurar Spring Security de forma jerárquica
  xx. Personalizar la cadena de filtros de seguridad (cont.)
    •   Crear un filtro para evitar el uso del botón “volver” tras
        hacer logout
The Smoking Man

       Todo esto de Spring Security
       esta muy bien, pero siempre
       me quedará el ataque Java2
        <%System.exit(0);%>
Más allá del taller. A partir de aquí…
• Configuraciones explícitas no implícitas
• Gestión de ACL’s
• Autentificación vía DataSources, LDAP,
  X509, OPENID, JEE, etc
• Captcha
• Single Sign On
• Secure Remoting
• “... en la mayoría de mi trabajo, las leyes de
  la física rara vez se aplican.” Mulder 1x01 "Pilot"
¿preguntas?



The Truth is Out There
(La Verdad está ahí afuera)
Referencias
• Spring Security 3.1 Reference
  http://bit.ly/uQFyUY
• JSR-250 Annotations
  http://en.wikipedia.org/wiki/JSR_250
• Spring SpEL
  http://bit.ly/xIuueQ
• Spring Security Common Built-In Expressions
  http://bit.ly/worFP0
• Spring Security Adding Custom filters
  http://bit.ly/z2vQWQ
• Constantes Spring Security
  http://bit.ly/yszYqm
• Clasificación de la información por países
  http://bit.ly/zLCoNT
¡Gracias!


•   @pronoide_fer
•   fredondo@pronoide.com
•   http://pronoide.com
•   http://blog.pronoide.es

Weitere ähnliche Inhalte

Was ist angesagt?

Webinar Gratuito "Metasploit Framework"
Webinar Gratuito "Metasploit Framework"Webinar Gratuito "Metasploit Framework"
Webinar Gratuito "Metasploit Framework"Alonso Caballero
 
Seguridad con ForeFront y SharePoint: Juntos mucho mejor
Seguridad con ForeFront y SharePoint: Juntos mucho mejorSeguridad con ForeFront y SharePoint: Juntos mucho mejor
Seguridad con ForeFront y SharePoint: Juntos mucho mejorJuan Andrés Valenzuela
 
Webinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasWebinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasAlonso Caballero
 
Nmap.potosim
Nmap.potosimNmap.potosim
Nmap.potosimgh02
 
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ónicoRené Olivo
 
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Alonso Caballero
 
Los 10 Mandamientos de Seguridad para SysAdmin
Los 10 Mandamientos de Seguridad para SysAdminLos 10 Mandamientos de Seguridad para SysAdmin
Los 10 Mandamientos de Seguridad para SysAdminESET Latinoamérica
 
Webinar Gratuito: Kali Linux 2.0
Webinar Gratuito: Kali Linux 2.0Webinar Gratuito: Kali Linux 2.0
Webinar Gratuito: Kali Linux 2.0Alonso Caballero
 

Was ist angesagt? (20)

Grupo Nº1: Internet Explorer
Grupo Nº1: Internet ExplorerGrupo Nº1: Internet Explorer
Grupo Nº1: Internet Explorer
 
Webinar Gratuito "Metasploit Framework"
Webinar Gratuito "Metasploit Framework"Webinar Gratuito "Metasploit Framework"
Webinar Gratuito "Metasploit Framework"
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad Informática
 
Seguridad con ForeFront y SharePoint: Juntos mucho mejor
Seguridad con ForeFront y SharePoint: Juntos mucho mejorSeguridad con ForeFront y SharePoint: Juntos mucho mejor
Seguridad con ForeFront y SharePoint: Juntos mucho mejor
 
Webinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses BásicasWebinar Gratuito: Técnicas Antiforenses Básicas
Webinar Gratuito: Técnicas Antiforenses Básicas
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Nmap.potosim
Nmap.potosimNmap.potosim
Nmap.potosim
 
P 5 web os
P 5 web osP 5 web os
P 5 web os
 
McAfee
McAfeeMcAfee
McAfee
 
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
 
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
Webinar Gratuito: "Herramientas Graficas en Kali Linux 2.0"
 
Antivirus
AntivirusAntivirus
Antivirus
 
Mcafee
McafeeMcafee
Mcafee
 
Xss attacks
Xss attacksXss attacks
Xss attacks
 
Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014Presentacion Guia OWASP 2014
Presentacion Guia OWASP 2014
 
Los 10 Mandamientos de Seguridad para SysAdmin
Los 10 Mandamientos de Seguridad para SysAdminLos 10 Mandamientos de Seguridad para SysAdmin
Los 10 Mandamientos de Seguridad para SysAdmin
 
SEGURIDAD
SEGURIDADSEGURIDAD
SEGURIDAD
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Webinar Gratuito: Kali Linux 2.0
Webinar Gratuito: Kali Linux 2.0Webinar Gratuito: Kali Linux 2.0
Webinar Gratuito: Kali Linux 2.0
 

Andere mochten auch

Taller Seguridad SCADA. Forum CIIP 2010
Taller Seguridad SCADA. Forum CIIP 2010Taller Seguridad SCADA. Forum CIIP 2010
Taller Seguridad SCADA. Forum CIIP 2010ignacioparedes
 
86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsfpablo lopez
 
Kanban Kata - Lean Kanban European Conference Tour 2012
Kanban Kata - Lean Kanban European Conference Tour 2012Kanban Kata - Lean Kanban European Conference Tour 2012
Kanban Kata - Lean Kanban European Conference Tour 2012Håkan Forss
 
Norma de seguridad en los procesos de soldadura
Norma de seguridad en los procesos de soldaduraNorma de seguridad en los procesos de soldadura
Norma de seguridad en los procesos de soldaduralucy pascual
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 

Andere mochten auch (7)

Taller Seguridad SCADA. Forum CIIP 2010
Taller Seguridad SCADA. Forum CIIP 2010Taller Seguridad SCADA. Forum CIIP 2010
Taller Seguridad SCADA. Forum CIIP 2010
 
86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf86535551 ciclo-de-vida-jsf
86535551 ciclo-de-vida-jsf
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Kanban Kata - Lean Kanban European Conference Tour 2012
Kanban Kata - Lean Kanban European Conference Tour 2012Kanban Kata - Lean Kanban European Conference Tour 2012
Kanban Kata - Lean Kanban European Conference Tour 2012
 
Norma de seguridad en los procesos de soldadura
Norma de seguridad en los procesos de soldaduraNorma de seguridad en los procesos de soldadura
Norma de seguridad en los procesos de soldadura
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Work Rules!
Work Rules!Work Rules!
Work Rules!
 

Ähnlich wie Springio2012 taller-seguridad-web-springsecurity-3

El Estado de la Seguridad de IBM i en 2020
El Estado de la Seguridad de IBM i en 2020El Estado de la Seguridad de IBM i en 2020
El Estado de la Seguridad de IBM i en 2020HelpSystems
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Webacksec
 
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...eccutpl
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4tantascosasquenose
 
Webinar Security Scan
Webinar Security ScanWebinar Security Scan
Webinar Security ScanHelpSystems
 
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...Amazon Web Services LATAM
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP7th_Sign
 
Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHPSeguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP7th_Sign
 
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTWebinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTJose Gonzales
 
Microsoft Windows Server 2003 Y Windows 2000
Microsoft Windows Server 2003 Y Windows 2000Microsoft Windows Server 2003 Y Windows 2000
Microsoft Windows Server 2003 Y Windows 2000teddy666
 
Microsoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000 IMicrosoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000 Iteddy666
 
Las 5 mejoras rápidas y efectivas para la seguridad de IBM i
Las 5 mejoras rápidas y efectivas para la seguridad de IBM iLas 5 mejoras rápidas y efectivas para la seguridad de IBM i
Las 5 mejoras rápidas y efectivas para la seguridad de IBM iHelpSystems
 
Seguridad, atributo crítico de un sistema
Seguridad, atributo crítico de un sistemaSeguridad, atributo crítico de un sistema
Seguridad, atributo crítico de un sistemaGeneXus
 
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 5Jose Gratereaux
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 

Ähnlich wie Springio2012 taller-seguridad-web-springsecurity-3 (20)

El Estado de la Seguridad de IBM i en 2020
El Estado de la Seguridad de IBM i en 2020El Estado de la Seguridad de IBM i en 2020
El Estado de la Seguridad de IBM i en 2020
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4
 
Webinar Security Scan
Webinar Security ScanWebinar Security Scan
Webinar Security Scan
 
virtual pc
virtual pcvirtual pc
virtual pc
 
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHPSeguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Aplicaciones seguras
Aplicaciones seguras Aplicaciones seguras
Aplicaciones seguras
 
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORTWebinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
Webinar CISOBeat - Detectar Ataques de Red Utilizando SNORT
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Microsoft Windows Server 2003 Y Windows 2000
Microsoft Windows Server 2003 Y Windows 2000Microsoft Windows Server 2003 Y Windows 2000
Microsoft Windows Server 2003 Y Windows 2000
 
Microsoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000 IMicrosoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000 I
 
Las 5 mejoras rápidas y efectivas para la seguridad de IBM i
Las 5 mejoras rápidas y efectivas para la seguridad de IBM iLas 5 mejoras rápidas y efectivas para la seguridad de IBM i
Las 5 mejoras rápidas y efectivas para la seguridad de IBM i
 
Administracion seguridad
Administracion seguridadAdministracion seguridad
Administracion seguridad
 
Intro Guía de Testing OWASP
Intro Guía de Testing OWASPIntro Guía de Testing OWASP
Intro Guía de Testing OWASP
 
Seguridad, atributo crítico de un sistema
Seguridad, atributo crítico de un sistemaSeguridad, atributo crítico de un sistema
Seguridad, atributo crítico de un sistema
 
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
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 

Mehr von Fernando Redondo Ramírez

Mehr von Fernando Redondo Ramírez (7)

Codemotion 2015 spock_workshop
Codemotion 2015 spock_workshopCodemotion 2015 spock_workshop
Codemotion 2015 spock_workshop
 
Spring IO 2015 Spock Workshop
Spring IO 2015 Spock WorkshopSpring IO 2015 Spock Workshop
Spring IO 2015 Spock Workshop
 
Greach 2015 Spock workshop
Greach 2015 Spock workshopGreach 2015 Spock workshop
Greach 2015 Spock workshop
 
Javacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 SpeechJavacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 Speech
 
Javacro 2014 SemameStreet Grails 2 Speech
Javacro 2014  SemameStreet Grails 2 SpeechJavacro 2014  SemameStreet Grails 2 Speech
Javacro 2014 SemameStreet Grails 2 Speech
 
Greach 2014 Sesamestreet Grails2 Workshop
Greach 2014 Sesamestreet Grails2 Workshop Greach 2014 Sesamestreet Grails2 Workshop
Greach 2014 Sesamestreet Grails2 Workshop
 
Greach2013 taller-grails2
Greach2013 taller-grails2Greach2013 taller-grails2
Greach2013 taller-grails2
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
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 ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
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 XXIhmpuellon
 
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...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
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.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
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 BasicosJhonJairoRodriguezCe
 

Kürzlich hochgeladen (11)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
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
 
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...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
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.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 

Springio2012 taller-seguridad-web-springsecurity-3

  • 1. Seguridad en Aplicaciones Web con Spring Security 3 [Taller] Fernando Redondo Ramírez @pronoide_fer
  • 2. Índice • ¿Quién soy? • Breve Introducción a Spring Security 3 • ¡Manos a la obra! • Más allá del taller • Enlaces • Preguntas
  • 3. ¿Quién soy? • Emprendedor y empresario en Pronoide desde 2003 • Formador Java & Friends • Haciendo cosas con Java desde 1999 • Ingeniero técnico informático • Casado y padre de dos hijos (la segunda hija podría estar naciendo ahora… ¡uff!)
  • 4. Breve Introducción a Spring Security 3 • ¿La seguridad JEE no es estándar? Sí, pero: 1. Seguridad JEE ⇒ Basada en restricciones (Constraints) 2. Seguridad JEE ⇒ Exclusivamente perimetral 3. Seguridad JEE ⇒ Funcionalidades dependientes de cada Servidor de Aplicaciones (Realms, SSO, Cifrado, etc.) 4. Seguridad JEE ⇒ Aplicaciones JEE no transportables entre plataformas o versiones del mismo servidor 5. Seguridad JEE ⇒ Difícil de adaptar a para aplicaciones Web 2.0 y/o nuevos requerimientos
  • 5. Breve Introducción a Spring Security 3 • ¿La seguridad JEE no es estándar? Sí, pero: 1. Spring Security ⇒ Basada en otorgar permisos 2. Spring Security ⇒ Perimetral y jerárquica 3. Spring Security ⇒ Funcionalidades independientes del Servidor de Aplicaciones 4. Spring Security ⇒ Aplicaciones JEE transportables 5. Spring Security ⇒ Versátil y adaptable
  • 6. Breve Introducción a Spring Security 3 Arquitectura (¡y se acabó!) Peticiones Web Métodos Negocio Business Object (Method) Security Web/HTTP Security Proxies/Interceptores de Cadena de filtros de seguridad seguridad Seguridad Aplicaciones SecurityContextHolder SecurityContext Spring Security 3 Authentication GrantedAuthority Autentificación Autorización AuthenticationManager AccessDecisionManager AuthenticationProviders Voters UserDetailsService AfterInvocationManager
  • 7. ¡Manos a la obra! ¡¡Necesito seguridad en la aplicación de los Expedientes X!! Notas 1. Descargar http://pronoide.com/descargas/fbi.war 2. Importar war en STS 2.8 3. Ejecutar la aplicación 4. Entrar en http://localhost:8080/fbi/index.jsp
  • 8. Etapa: Configurar Spring Security en la aplicación web i. Configurar el filtro interceptor de las peticiones web
  • 9. Etapa: Configurar Spring Security en la aplicación web ii. Crear el fichero para la configuración de seguridad con una seguridad mínima y cargarlo en el web.xml
  • 10. Etapa: Configurar Spring Security en la aplicación web iii. Configurar el login/logout explícitamente iv. Solucionar problemas de recursos, CSS e imágenes
  • 11. Etapa: Configurar Spring Security en la aplicación web v. Proteger contraseñas de los usuarios encriptándolas • Generar claves con Spring Basic Crypto Module • Poner las claves cifradas y configurar el algoritmo y el salt
  • 12. Etapa: Configurar Spring Security en la aplicación web vi. Añadir funcionalidad “Remember Me”
  • 13. Etapa: Configurar Spring Security en la aplicación web vii. Seguridad en el canal de transporte (HTTPS) • Configurar restricciones y puertos • Crear conector SSL en Servidor
  • 14. Etapa: Configurar Spring Security en la aplicación web viii. Control de la expiración de sesiones ix. Control de la concurrencia de sesiones
  • 15. Etapa: Configurar Spring Security en la aplicación web x. Uso de la librería de etiquetas (Spring Security Taglibs)
  • 16. Etapa: Configurar Spring Security en la aplicación web xi. Uso Expresiones SpEL para proteger URL’s xii. Uso Expresiones SpEL con etiquetas Security Taglib
  • 17. ¡Pero que has hecho! ¿¿Sólo hay seguridad en el acceso a los recursos web?? Prueba y verás: https://localhost:8443/fbi/expedientesx /clasificar?id=1
  • 18. Etapa: Configurar Spring Security en Servicios de Negocio xiii. Seguridad en la invocación de métodos de negocio con anotaciones Spring Security
  • 19. Etapa: Configurar Spring Security en Servicios de Negocio xiv. Seguridad en la invocación de métodos de negocio con anotaciones JSR-250
  • 20. Etapa: Configurar Spring Security en Servicios de Negocio xv. Seguridad en la invocación de métodos de negocio con Pointcuts de AspectJ
  • 21. Etapa: Configurar Spring Security en Servicios de Negocio xvi. Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Preinvocación)
  • 22. Mucho mejor pero… ¿¿Qué haces consultando expedientes que no son tuyos?? ¿¿Cómo es que puedes ver el de tu hermana?? ¿¿… y a estas horas??
  • 23. Etapa: Configurar Spring Security de forma jerárquica xvii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Postinvocación)
  • 24. Etapa: Configurar Spring Security de forma jerárquica xviii.Seguridad en la invocación de métodos de negocio con Expresiones SpEL (Filtro de resultados)
  • 25. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes • Codificar un votante
  • 26. Etapa: Configurar Spring Security de forma jerárquica xix. Utilización del sistema de votantes (cont.) • Explicitar la configuración del espacio de nombres Security • Personalizar la configuración del accessDecisionManager
  • 27. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad • Crear un filtro para recordar el usuario que hace login
  • 28. Etapa: Configurar Spring Security de forma jerárquica xx. Personalizar la cadena de filtros de seguridad (cont.) • Crear un filtro para evitar el uso del botón “volver” tras hacer logout
  • 29. The Smoking Man Todo esto de Spring Security esta muy bien, pero siempre me quedará el ataque Java2 <%System.exit(0);%>
  • 30. Más allá del taller. A partir de aquí… • Configuraciones explícitas no implícitas • Gestión de ACL’s • Autentificación vía DataSources, LDAP, X509, OPENID, JEE, etc • Captcha • Single Sign On • Secure Remoting • “... en la mayoría de mi trabajo, las leyes de la física rara vez se aplican.” Mulder 1x01 "Pilot"
  • 31. ¿preguntas? The Truth is Out There (La Verdad está ahí afuera)
  • 32. Referencias • Spring Security 3.1 Reference http://bit.ly/uQFyUY • JSR-250 Annotations http://en.wikipedia.org/wiki/JSR_250 • Spring SpEL http://bit.ly/xIuueQ • Spring Security Common Built-In Expressions http://bit.ly/worFP0 • Spring Security Adding Custom filters http://bit.ly/z2vQWQ • Constantes Spring Security http://bit.ly/yszYqm • Clasificación de la información por países http://bit.ly/zLCoNT
  • 33. ¡Gracias! • @pronoide_fer • fredondo@pronoide.com • http://pronoide.com • http://blog.pronoide.es