|
|||||||||||||||||||||||
| La Web enredada. Guía para la seguridad de aplicaciones web modernas | |||||||||||||||||||||||
|
|||||||||||||||||||||||
| Ficha del libro | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
| Otros criterios de clasificación | ||||||||||||||||||||||||||||||
| Materia: Internet/Libros técnicos Nivel: Básico/Medio Tipo de libro: Aprendizaje/Referencia IBIC (00) Temática/Materia: COMPUTACIÓN E INFORMÁTICA/PROGRAMACIÓN INFORMÁTICA/DESARROLLO DE SOFTWARE/Programación de web IBIC (00) Temática/Materia: COMPUTACIÓN E INFORMÁTICA/SEGURIDAD INFORMÁTICA |
| Índice |
| Prefacio 1. La seguridad en el mundo de las aplicaciones Web Información sobre seguridad en una cáscara de nuez Flirteando con soluciones formales Introducción a la gestión de riesgos Iluminación a través de la taxonomía Hacia enfoques más prácticos Una breve historia de la Web Cuentos de la Edad de Piedra: 1945 a 1994 Las primeras guerras de los navegadores: 1995 a 1999 El período aburrido: 2000 a 2003 La Web 2.0 y la segunda guerra de los navegadores: 2004 y más allá La evolución de una amenaza El usuario como fallo de seguridad La Nube o las alegrías de la vida en comunidad Divergencia de visiones Interacciones entre navegadores cruzados: el fallo de la sinergia El desglose de la división cliente-servidor Parte I. Anatomía de la Web 2. Todo empieza con una URL La estructura de un localizador uniforme de recursos Nombre de esquema Indicador de una URL jerárquica Credenciales para acceder al recurso Dirección del servidor Puerto del servidor Ruta jerárquica de archivo Cadena de consulta Identificador de fragmento Ponerlo todo junto de nuevo Caracteres reservados y codificación porcentual Manejar texto ASCII en idiomas no derivados del inglés Esquemas URL comunes y sus funciones Protocolos de búsqueda de documentos soportados en un navegador Protocolos reclamados por aplicaciones y complementos de terceros Seudo-protocolos no encapsulados Seudo-protocolos encapsulados Nota final sobre la detección de esquemas Resolución de URL relativas 3. Protocolo de transferencia de hipertexto Sintaxis básica del tráfico HTTP Las consecuencias del soporte de HTTP/0.9 Peculiaridades del manejo de marcas de nueva línea Peticiones Proxy Resolución de cabeceras duplicadas o en conflicto Valores de cabecera delimitados por punto y coma Conjuntos de caracteres y esquemas de codificación en las cabeceras Comportamiento de la cabecera Referer Tipos de peticiones HTTP GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT Otros métodos HTTP Códigos de respuesta del servidor 200-299: éxito 300-399: redirección y otros mensajes de estado 400-499: error en el lado del cliente 500-599: error en el lado del servidor Coherencia de la señalización de códigos HTTP Conexiones persistentes Transferencia de datos fragmentados Comportamiento de la caché Semánticas de cookies HTTP Autentificación HTTP Encriptación a nivel de protocolo y certificados de cliente Certificados de validación ampliados Reglas de gestión de errores 4. El lenguaje de etiquetas de hipertexto Conceptos básicos tras los documentos HTML Modos de análisis de documentos La batalla de las semánticas El comportamiento de los analizadores de HTML Interacciones entre varias etiquetas Condicionales explícitos e implícitos Consejos de supervivencia para el análisis de HTML Codificación de entidades Semánticas de integración HTTP/HTML Hipervínculos e inclusión de contenido Vínculos sencillos Formularios y peticiones activadas por formularios Marcos Inclusión de contenido de un tipo específico Una nota sobre la falsificación de peticiones de sitios cruzados 5. Hojas de estilo en cascada Sintaxis básica de CSS Definiciones de propiedades Directivas @ y vinculaciones XBL Interacciones con HTML Riesgos de la resincronización del analizador Codificación de caracteres 6. Script en el lado del navegador Características básicas de JavaScript El modelo de proceso de script Análisis Resolución de funciones Control del orden de ejecución Capacidades de inspección de objetos y código Modificar el entorno en tiempo de ejecución Anular complementos Funciones set y get Impacto de los usos potenciales del lenguaje Notación de objetos JavaScript y otras serializaciones de datos E4X y otras extensiones de sintaxis Jerarquía de objetos estándar El modelo de objetos de documento, DOM Acceso a otros documentos Codificación de caracteres en los script Modos de inclusión de código y riesgos de anidación El muerto viviente: Visual Basic 7. Tipos de documentos no HTML Archivos de texto Imágenes de mapa de bits Audio y vídeo Documentos basados en XML Vista genérica de XML Gráficos vectoriales escalables Lenguaje de etiquetas matemáticas Lenguaje de interfaz de usuario XML Lenguaje de etiquetas inalámbrico Orígenes de datos RSS y Atom Una nota sobre tipos de archivos no legibles 8. Representación de contenidos con complementos de navegador Llamar a un complemento Los peligros de manejar la cabecera Content-Type para complementos Ayudas para la representación de documentos Marcos de trabajo de aplicaciones basadas en complementos Adobe Flash Propiedades de ActionScript Microsoft Silverlight Java de Sun XBAP (XML Browser Applications) Controles ActiveX Convivir con otros complementos Parte II. Características de seguridad de los navegadores 9. Lógica de aislamiento de contenido Directiva del mismo origen para el modelo de objetos de documento document.domain postMessage(…) Interacciones con las credenciales del navegador Directiva de mismo origen para XMLHttpRequest Directiva de mismo origen para almacenamiento Web Directivas de seguridad para cookies Impacto de las cookies en la directiva de mismo origen Problemas con las restricciones de dominio El inusual peligro de "localhost" Cookies y secuestro "legítimo" de DNS Reglas de seguridad de complementos Adobe Flash Controles de seguridad a nivel de etiquetado Security.allowDomain(…) Archivos de directiva de dominios cruzados Riesgos de suplantación en directivas de archivos Microsoft Silverlight Java Hacer frente a orígenes ambiguos o inesperados Direcciones IP Nombres de host con puntos adicionales Nombres de host no cualificados totalmente Archivos locales Seudo-URL Extensiones del navegador e interfaz de usuario Otros usos de orígenes 10. Herencia de origen Herencia de origen para about:blank Herencia para URL data: Herencia de URL javascript: y vbscript: Una nota sobre seudo-URL restringidas 11. La vida fuera de la regla del mismo origen Interacciones de ventanas y marcos Cambiar la localización de documentos existentes Riesgos de secuestro de marcos Directriz del marco descendente y comunicaciones en dominios cruzados Marcos no solicitados Más allá del truco del clic Inclusión de contenido en dominios cruzados Una nota sobre sub-recursos en orígenes cruzados Privacidad relacionada con canales colaterales Otras lagunas SOP y sus usos 12. Otros límites de seguridad Navegación a esquemas sensibles Acceso a redes internas Puertos prohibidos Limitaciones en las cookies de terceros 13. Mecanismos de reconocimiento de contenidos Lógica de detección del tipo de contenido Tipos MIME mal formados Valores de Content-Type especiales Tipos de contenidos no reconocidos Usos defensivos de Content-Disposition Directivas de contenido en sub-recursos Archivos descargables y otros tipos de contenido no HTTP Gestión de conjuntos de caracteres Marcas de orden de bytes Anulación y herencia del conjunto de caracteres Conjuntos de caracteres controlados por el etiquetado en sub-recursos Detección de archivos no HTTP 14. Tratar con script maliciosos Ataques por denegación de servicios Restricciones de uso de memoria y tiempo de ejecución Límites de conexión Filtrado de ventanas emergentes Restricciones en el uso de cuadros de diálogo Posicionamiento de ventanas y problemas de apariencia Ataques de tiempo en las interfaces de usuario 15. Privilegios extrínsecos de un sitio Permisos de sitios gestionados por el navegador y sus complementos Dominios establecidos manualmente Gestores de contraseñas basados en formularios El modelo de zonas de Internet Explorer Marca de la Web y Zone.Identifier Parte III. Lo que está por venir 16. Características de seguridad nuevas y futuras Marcos de trabajo de ampliación del modelo de seguridad Peticiones en dominios cruzados Tipos de peticiones CORS Comprobaciones de seguridad para peticiones simples Peticiones no simples y comprobaciones Estado actual de CORS XDomainRequest Otros usos de la cabecera Origin Marcos de trabajo de restricciones del modelo de seguridad Directiva de seguridad de contenido Directivas CSP principales Violaciones de las directivas Críticos de CSP Marcos de cajón de arena Script, formularios y navegación Orígenes sintéticos Seguridad de transporte estricta Modos de navegación privada Otros desarrollos Desinfectar HTML en el navegador Filtrado XSS 17. Otros mecanismos de navegación destacables Propuestas a nivel de protocolo y URL Características a nivel de contenido Interfaces de E/S 18. Vulnerabilidades Web comunes Vulnerabilidades específicas de aplicaciones Web Problemas a tener en cuenta en el diseño de aplicaciones Web Problemas comunes únicos del código del lado del servidor A. Epílogo B. Notas Capítulo 1 Capítulo 2 Capítulo 3 Capítulo 4 Capítulo 5 Capítulo 6 Capítulo 7 Capítulo 8 Capítulo 9 Capítulo 10 Capítulo 11 Capítulo 12 Capítulo 13 Capítulo 14 Capítulo 15 Capítulo 16 Capítulo 17 Índice alfabético |
| Reseña |
| Las aplicaciones web modernas están construidas sobre una maraña de tecnologías que se han ido desarrollando a lo largo del tiempo y que posteriormente se han ido reconstruyendo pieza a pieza al azar. Cada una de estas piezas, desde las solicitudes HTTP hasta los scripts en el lado del navegador, conlleva sutiles pero importantes consecuencias en la seguridad. Para mantener seguros a los usuarios, es esencial que los desarrolladores creen un entorno donde poder navegar con confianza. En este libro, Michael Zalewski intenta dar un paso adelante proporcionando un análisis sistemático y exhaustivo de la situación actual en el mundo de la seguridad de las aplicaciones web. El autor explica exactamente cómo funcionan los navegadores y por qué son inseguros, revelando sus puntos débiles y proporcionando información crucial para reforzar la seguridad de nuestras aplicaciones web. |
| Complementos |
|
|

Imprimir
Cerrar
Del.icio.us
Digg
Facebook
Menéame
MySpace
Yahoo
Enviar a un amigo