Programación Web Segura – Hackeando tu aplicación, es un libro escrito por Luis Parravicini que como bien dice su título, se enfoca directamente al desarrollo y testing en seguridad de aplicaciones web. Destaca sobre otras publicaciones el hecho de que incluya una completa aplicación desarrollada por el propio escritor, que de manera guiada nos lleva por cada uno de los capítulos aplicando el conocimiento adquirido sobre esta. Recomiendo este libro a las personas que recién inician en este campo, y quieren dirigir sus esfuerzos y energías a las temáticas relacionadas con las aplicaciones web. Una vez finalizada la lectura del mismo considero que pueden afrontar de mejor manera las publicaciones de OWASP (que algunas veces son tratadas con alto nivel técnico).
Desde el website oficial nos dejan las diferentes maneras de comprar el libro… Yo opté por la versión para Amazon Kindle (tan solo 3.99 USD$).
Desde este lector copié un fragmento de la introducción que dejo a continuación (espero no moleste al autor):
Este libro explica de manera sencilla los problemas de seguridad más comunes en las aplicaciones web y sus posibles soluciones. Es útil tanto para aquellos con poca experiencia en este tipo de desarrollos como para los que ya se dedican a esto y desean crear aplicaciones más seguras. Para sacar el mayor provecho de la lectura de este libro es necesario tener conocimientos mínimos en SQL, programación (sin importar el lenguaje) y HTML. Los problemas que se van a tratar no afectan a una tecnología o a un lenguaje en particular sino que aplican a todos los lenguajes usados actualmente para desarrollar aplicaciones Web.
Como el lenguaje de programación usado no es demasiado importante, no se suele mencionar ninguna función, método, o clase específica ya que cambian según el lenguaje. El objetivo es que el lector entienda cómo resolver el problema de un modo abstracto y que luego recurra a la documentación específica de las herramientas que tenga que usar.
Nos referimos a sitio, aplicación, aplicación web y sistema como sinónimos. Al igual que página y pantalla, refiriendose éstas a un documento que sea accesible por medio de una dirección Web (URL). Y se asume que, al menos para algunos de los problemas descritos (como inyección SQL) la aplicación almacena sus datos en una base de datos relacional (RDBMS).
No haremos distinción sobre si la aplicación será de acceso interno o tendrá una dirección con la cual sea posible acceder desde Internet. Es cierto que si la aplicación es pública, cualquiera podría intentar atacarla pero también es importante tener en cuenta que los ataques internos son muy peligrosos ya que los atacantes suelen tener más información sobre el funcionamiento y las debilidades del sistema.
Dejo a continuación el índice detallado del libro. En el website oficial nos dejan además un fragmento del capítulo titulado “Almacenando contraseñas“.
- Introducción
- Organización del libro
- Aplicación de ejemplo
- HTTP
- Pedidos/Respuestas
- Cookies
- Refer
- Analizar tráfico
- Firebug
- TamperIE
- WebKit Web Inspector
- WebScarab
- Fiddler
- Wireshark
- Proxies HTTP
- Fugas de información
- Páginas de error
- Comentarios
- Validaciones
- XSS
- CSRF
- Inyección SQL
- Inyección básica
- Ejecutar múltiples sentencias
- Ataques de segundo orden
- Inyección a ciegas
- Soluciones
- Escapar parámetros
- Prepared Statements
- ORM
- Permisos
- Detección automática
- Autenticación
- Almacenando contraseñas
- Criptografía
- Casos prácticos
- Texto plano
- Funciones de hash
- Openid
- Uso de frameworks
- Conclusiones
Espero disfruten la lectura…