SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Desarrollo de una Aplicación para el Apoyo a la Docencia de Seguridad Web Mediante Tecnologías .Net Autor: Roberto Cancio González Director: José Manuel Redondo López Máster en Ingeniería Web (EUITIO)                                    	 	     Universidad de Oviedo
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Problemas seguridad en la Web actual, según un estudio de Web Application Security Consortium: Un 13% de los sitios son vulnerables de manera completamente automática. Un 49% aprox. de las aplicaciones contienen vulnerabilidades urgentes o críticas. La probabilidad de detectarvulnerabilidades con un nivel de riesgomedio o superior es mayor del 86% utilizandocualquiermétodo. Las vulnerabilidades más comunes son: Cross-site scripting, filtración de información y SQL Injection Justificación proyecto http://projects.webappsec.org/w/page/13246989/Web-Application-Security-Statistics Máster en Ingeniería Web                    		                  	Roberto Cancio González
Justificación proyecto (2) Es necesario mejorar esta situación  Formación No es posible utilizar aplicaciones reales Otras herramientas similares van quedándose obsoletas: Son difíciles de poner en funcionamiento Ya no representan los problemas de las tecnologías actuales Máster en Ingeniería Web                    		                  	Roberto Cancio González
Objetivos Desarrollo de una aplicación web para docencia en el MIW de gestión de becas Entorno .Net Vulnerabilidades de seguridad documentadas Aspecto lo más real y profesional posible (tanto interna como externamente) Uso de últimas versiones de las distintas tecnologías Máster en Ingeniería Web                    		                  	Roberto Cancio González
Requisitos Funcionales CRUD sobre: Anuncios Comentarios Usuarios Convocatorias de Beca Usuarios anónimos  Registro como solicitantes Usuarios registrados  Inicio/Fin de sesión Solicitante  Realizar Solicitud Becas Evaluador  Evaluar Solicitud … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Requisitos No Funcionales Uso de estándares W3C (XHTML y CSS) Nivel AA de accesibilidad Uso de tecnologías .Net (C# y ASP.Net) LOPD (cifrado de contraseñas…) Vulnerabilidades de Seguridad: Cross-site scripting (XSS) SQL Injection Filtración de información Validación sólo en el cliente Puerta trasera … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Análisis: Actores Anónimo:ver anuncios y registrarse como solicitante Solicitante: comentar y realizar solicitudes de becas Evaluador: conceder o no las solicitudes de beca. También gestionar anuncios, comentarios y convocatorias de beca. Administrador: gestionar el sistema con sus usuarios, anuncios, convocatorias… Máster en Ingeniería Web                    		                  	Roberto Cancio González
Análisis: Módulos Anuncios Becas Usuarios Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Diseño Modelo Arquitectura organizada en capas Presentación Negocio Persistencia Patrón arquitectónico Layers Patrón de diseño Façade Reducción de acoplamiento: Inyección de Dependencias Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Persistencia Patrón de diseño DAO Los DAOs pueden colaborar entre sí Mismo esquema para cada entidad Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Negocio Patrón de diseño Command Máster en Ingeniería Web                    		                  	Roberto Cancio González
Secuencia Evaluación Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Vulnerabilidades Muchas vulnerabilidades aparecen por falta de validación en el servidor. Esto puede ser: Voluntario: con objeto de reducir la carga del servidor Involuntario: pensar que la validación en cliente es suficiente Otras aparecen por despistes y olvidos Se intentó reflejar todo este panorama incluyendo: Cross-site scripting en Comentarios y Solicitud de beca SQL Injection en la página de login Filtración de información (comentarios HTML con pistas que facilitan ataques) … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Tecnologías Back-End Base de datos: SQL Server Programación:  .Net Framework C#: Modelo, capas de la arquitectura, código de pruebas… Spring.Net: Inyección de Dependencias Máster en Ingeniería Web                    		                  	Roberto Cancio González
Tecnologías Front-End ASP.Net 3.5 Ajax Control Toolkit XHTML 1.0 Transitional CSS 2.1 y CSS 3 JQuery + PluginDataTables + PluginFileStyle Mejora Progresiva “Minificado” de código (CSS y Javascript) Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Pruebas Pruebas de regresión: herramienta integrada de Visual Studio (casi 200 métodos de prueba) Accesibilidad: AA + Varias pautas AAA Problema con plug-in JQueryDataTables: finalmente corregido Usabilidad: Heurísticas + Usuarios Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Prueba ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
¿Qué he aprendido? Aspectos de seguridad Vulnerabilidades en entorno .Net Por qué se producen (malas prácticas) Cómo solucionarlas (buenas prácticas) Utilización del .Net Framework Inyección de dependencias y uso de Spring.Net Integración de todo lo aprendido durante el Máster (conceptos, técnicas, tecnologías,…) Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Conclusiones Gestión de Becas: para llamar la atención del alumno Aspecto interno real y profesional: Patrones arquitectónicos y de diseño Inyección de dependencias Pruebas de regresión Cifrado de contraseñas mediante SHA-1 Aspecto externo real y profesional: Accesibilidad Usabilidad y patrones de diseño de interacción Diseño e implementación del mismo Validación Javascript Máster en Ingeniería Web                    		                  	Roberto Cancio González
Conclusiones (2) Documentación de vulnerabilidades: Todas incluidas en el manual correspondiente y screencast: http://www.youtube.com/watch?v=m11O25oMw7k  Uso de últimas versiones tecnologías: .Net, Ajax Control Toolkit, Spring.Net, JQuery, plugins,… …y sobre todo: Ahora existe una herramienta lo más real y actual posible que sí podrá utilizarse para la docencia de seguridad en aplicaciones web en el Máster en Ingeniería Web Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Ampliaciones Proyectos similares en otras tecnologías Java (usando el frameworkStruts, por ejemplo) Ruby (usando el frameworkRails, por ejemplo) PHP (usando el frameworkYii, por ejemplo) Proyectos similares utilizando otras tecnologías del Framework .Net: MVC LINQ Ampliación proyecto: Más vulnerabilidades Nivel de accesibilidad AA  AAA … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Demostración Práctica FIN DE LA PRESENTACIÓN Demostración Práctica Máster en Ingeniería Web                    		                  	Roberto Cancio González

Weitere ähnliche Inhalte

Ähnlich wie Web sec

Ingenieria web
Ingenieria webIngenieria web
Ingenieria webarienneya
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabriaAldo Hernán Zanabria Gálvez
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15supito01
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005hvillarreal
 
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...Generación de Jóvenes Rompiendo Barreras
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15supito01
 
Diseño de páginas web
Diseño de páginas webDiseño de páginas web
Diseño de páginas webJuan Aguillon
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDidier Granados
 

Ähnlich wie Web sec (20)

La Ingeniería Web
La Ingeniería WebLa Ingeniería Web
La Ingeniería Web
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
Ddd
DddDdd
Ddd
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabria
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
profundizaU1.pdf
profundizaU1.pdfprofundizaU1.pdf
profundizaU1.pdf
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
 
Sesion 1
Sesion 1Sesion 1
Sesion 1
 
Ingeniería web_Unidad 3
Ingeniería web_Unidad 3Ingeniería web_Unidad 3
Ingeniería web_Unidad 3
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15
 
Diseño de páginas web
Diseño de páginas webDiseño de páginas web
Diseño de páginas web
 
Sis07 pwi programacion_web_i
Sis07 pwi programacion_web_iSis07 pwi programacion_web_i
Sis07 pwi programacion_web_i
 
Rosalie On-Line
Rosalie On-LineRosalie On-Line
Rosalie On-Line
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 

Kürzlich hochgeladen

La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Kürzlich hochgeladen (20)

La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

Web sec

  • 1. Desarrollo de una Aplicación para el Apoyo a la Docencia de Seguridad Web Mediante Tecnologías .Net Autor: Roberto Cancio González Director: José Manuel Redondo López Máster en Ingeniería Web (EUITIO) Universidad de Oviedo
  • 2. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 3. Problemas seguridad en la Web actual, según un estudio de Web Application Security Consortium: Un 13% de los sitios son vulnerables de manera completamente automática. Un 49% aprox. de las aplicaciones contienen vulnerabilidades urgentes o críticas. La probabilidad de detectarvulnerabilidades con un nivel de riesgomedio o superior es mayor del 86% utilizandocualquiermétodo. Las vulnerabilidades más comunes son: Cross-site scripting, filtración de información y SQL Injection Justificación proyecto http://projects.webappsec.org/w/page/13246989/Web-Application-Security-Statistics Máster en Ingeniería Web Roberto Cancio González
  • 4. Justificación proyecto (2) Es necesario mejorar esta situación  Formación No es posible utilizar aplicaciones reales Otras herramientas similares van quedándose obsoletas: Son difíciles de poner en funcionamiento Ya no representan los problemas de las tecnologías actuales Máster en Ingeniería Web Roberto Cancio González
  • 5. Objetivos Desarrollo de una aplicación web para docencia en el MIW de gestión de becas Entorno .Net Vulnerabilidades de seguridad documentadas Aspecto lo más real y profesional posible (tanto interna como externamente) Uso de últimas versiones de las distintas tecnologías Máster en Ingeniería Web Roberto Cancio González
  • 6. Requisitos Funcionales CRUD sobre: Anuncios Comentarios Usuarios Convocatorias de Beca Usuarios anónimos  Registro como solicitantes Usuarios registrados  Inicio/Fin de sesión Solicitante  Realizar Solicitud Becas Evaluador  Evaluar Solicitud … Máster en Ingeniería Web Roberto Cancio González
  • 7. Requisitos No Funcionales Uso de estándares W3C (XHTML y CSS) Nivel AA de accesibilidad Uso de tecnologías .Net (C# y ASP.Net) LOPD (cifrado de contraseñas…) Vulnerabilidades de Seguridad: Cross-site scripting (XSS) SQL Injection Filtración de información Validación sólo en el cliente Puerta trasera … Máster en Ingeniería Web Roberto Cancio González
  • 8. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 9. Análisis: Actores Anónimo:ver anuncios y registrarse como solicitante Solicitante: comentar y realizar solicitudes de becas Evaluador: conceder o no las solicitudes de beca. También gestionar anuncios, comentarios y convocatorias de beca. Administrador: gestionar el sistema con sus usuarios, anuncios, convocatorias… Máster en Ingeniería Web Roberto Cancio González
  • 10. Análisis: Módulos Anuncios Becas Usuarios Máster en Ingeniería Web Roberto Cancio González
  • 11. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 12. Diseño Modelo Arquitectura organizada en capas Presentación Negocio Persistencia Patrón arquitectónico Layers Patrón de diseño Façade Reducción de acoplamiento: Inyección de Dependencias Máster en Ingeniería Web Roberto Cancio González
  • 13. Diseño Persistencia Patrón de diseño DAO Los DAOs pueden colaborar entre sí Mismo esquema para cada entidad Máster en Ingeniería Web Roberto Cancio González
  • 14. Diseño Negocio Patrón de diseño Command Máster en Ingeniería Web Roberto Cancio González
  • 15. Secuencia Evaluación Máster en Ingeniería Web Roberto Cancio González
  • 16. Diseño Vulnerabilidades Muchas vulnerabilidades aparecen por falta de validación en el servidor. Esto puede ser: Voluntario: con objeto de reducir la carga del servidor Involuntario: pensar que la validación en cliente es suficiente Otras aparecen por despistes y olvidos Se intentó reflejar todo este panorama incluyendo: Cross-site scripting en Comentarios y Solicitud de beca SQL Injection en la página de login Filtración de información (comentarios HTML con pistas que facilitan ataques) … Máster en Ingeniería Web Roberto Cancio González
  • 17. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 18. Tecnologías Back-End Base de datos: SQL Server Programación: .Net Framework C#: Modelo, capas de la arquitectura, código de pruebas… Spring.Net: Inyección de Dependencias Máster en Ingeniería Web Roberto Cancio González
  • 19. Tecnologías Front-End ASP.Net 3.5 Ajax Control Toolkit XHTML 1.0 Transitional CSS 2.1 y CSS 3 JQuery + PluginDataTables + PluginFileStyle Mejora Progresiva “Minificado” de código (CSS y Javascript) Máster en Ingeniería Web Roberto Cancio González
  • 20. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 21. Pruebas Pruebas de regresión: herramienta integrada de Visual Studio (casi 200 métodos de prueba) Accesibilidad: AA + Varias pautas AAA Problema con plug-in JQueryDataTables: finalmente corregido Usabilidad: Heurísticas + Usuarios Máster en Ingeniería Web Roberto Cancio González
  • 22. Índice Introducción Análisis Diseño Tecnologías Prueba ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 23. ¿Qué he aprendido? Aspectos de seguridad Vulnerabilidades en entorno .Net Por qué se producen (malas prácticas) Cómo solucionarlas (buenas prácticas) Utilización del .Net Framework Inyección de dependencias y uso de Spring.Net Integración de todo lo aprendido durante el Máster (conceptos, técnicas, tecnologías,…) Máster en Ingeniería Web Roberto Cancio González
  • 24. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 25. Conclusiones Gestión de Becas: para llamar la atención del alumno Aspecto interno real y profesional: Patrones arquitectónicos y de diseño Inyección de dependencias Pruebas de regresión Cifrado de contraseñas mediante SHA-1 Aspecto externo real y profesional: Accesibilidad Usabilidad y patrones de diseño de interacción Diseño e implementación del mismo Validación Javascript Máster en Ingeniería Web Roberto Cancio González
  • 26. Conclusiones (2) Documentación de vulnerabilidades: Todas incluidas en el manual correspondiente y screencast: http://www.youtube.com/watch?v=m11O25oMw7k Uso de últimas versiones tecnologías: .Net, Ajax Control Toolkit, Spring.Net, JQuery, plugins,… …y sobre todo: Ahora existe una herramienta lo más real y actual posible que sí podrá utilizarse para la docencia de seguridad en aplicaciones web en el Máster en Ingeniería Web Máster en Ingeniería Web Roberto Cancio González
  • 27. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 28. Ampliaciones Proyectos similares en otras tecnologías Java (usando el frameworkStruts, por ejemplo) Ruby (usando el frameworkRails, por ejemplo) PHP (usando el frameworkYii, por ejemplo) Proyectos similares utilizando otras tecnologías del Framework .Net: MVC LINQ Ampliación proyecto: Más vulnerabilidades Nivel de accesibilidad AA  AAA … Máster en Ingeniería Web Roberto Cancio González
  • 29. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 30. Demostración Práctica FIN DE LA PRESENTACIÓN Demostración Práctica Máster en Ingeniería Web Roberto Cancio González