PDF de programación - Puntos débiles de prácticas comunes en desarrollos Web

Puntos débiles de prácticas comunes en desarrollos Webgráfica de visualizaciones

Publicado el 2 de Mayo del 2017
1.173 visualizaciones desde el 2 de Mayo del 2017
13,6 MB
48 paginas
Creado hace 8a (21/10/2015)
Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Puntos débiles de prácticas comunes

en desarrollos Web

Gunnar Wolf

Desarrollador del proyecto Debian

Instituto de Investigaciones Económicas UNAM

Facultad de Ingeniería UNAM

21 de octubre, 2015

Contenidos

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

1 Panorama histórico

2 El ciclo de vida de un desarrollo

3 Bundling

4 Minicación

5 Fin

Antes de comenzar

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Daremos un breve recorrido por los últimos 25 años del

desarrollo de la Web, para apreciar cómo ha ido

incrementando la complejidad del entorno.

Particularmente, en cómo hay cada vez mayor diferencial
de impedancia entre desarrolladores, administradores de

sistemas e integradores.

Y si somos ambiciosos, apuntaremos a su disminución.

HTTP y la World Wide Web

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Tim Berners-Lee, CERN, 1989

Primer navegador, 1998

Sistema concebido para compartir documentos
estáticos interrelacionados (hipertexto → 1950s)

Esquema originalmente orientado al texto
Entorno académico

Mosaic Web Browser (1993): Primer navegador que
presenta junto texto e imágenes
1995: Internet para uso personal y comercial →
½Boom!

Contenido dinámico: CGI

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Wikimedia Commons

1993: El National Center for
Supercomputing Applications publica
la especicación para hacer llamadas
a ejecutables desde un servidor Web

Paso de parámetros al ambiente
Etiquetas para formularios

Nacimiento del contenido dinámico

CGI + DBMS = CMS

. . . Lento y plagado de problemas de
seguridad

Servidores de aplicación

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Servidor Web y servidor de aplicación se comunican
por un socket

Coldfusion, Java Servlets, mod_perl, FastCGI. . .

Separación de responsabilidades

Permite al mismo servidor ejecutar código bajo
diferentes permisos del sistema
Desacopla, reduce supercie de ataque

Mayor rapidez de respuesta

Evita la ejecución de un proceso por solicitud

. . . Invitación a la complejidad

Marcos de desarrollo Web (frameworks)

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Ya teniendo la infraestructura básica de un servidor
de aplicación, no tardaron en aparecer los
frameworks

Cientos de distintos frameworks, varios por lenguaje
Conocimiento no trasladable entre lenguajes,
incluso entre distintos marcos

Ofrecen al programador:

Integración entre componentes
Mayor automatización
Abstracción
Mapeadores objeto-relacionales
Persistencia
Velocidad de desarrollo
. . .

Comunidades de creadores

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Prácticamente todos los marcos han creado
comunidades de autores de código

Se nutren de ellas
Le dan mayor dinamismo al marco
Generan módulos que agregan funcionalidad
Generan arquitecturas de gestión de módulos

XMLHttpRequest / AJAX

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Javascript deja de ser el patito feo para ser parte del
engranaje fundamental

Por n, sitios Web plenamente dinámicos

Actualización parcial de las páginas

Explotación del DOM

Menor tiempo de satisfacción al click
Menor carga al servidor

No requiere regenerar los elementos constantes

Muchos nuevos frameworks y bibliotecas para
aprovechar esta nueva funcionalidad

El lado doloroso de AJAX

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Pérdida del URL como descriptor del contenido

Contenido oculto que requiere navegación

Nuevas categorías de vulnerabilidades

XSS, CSRF, inyección de encabezados, nuevas
posibilidades para MITM. . .
Muchos más puntos de costura para hacer un
análisis de riesgos al trasladar entidades entre capas

Flash

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Si no tienes nada bueno que decir de algo. . .

No digas nada

A algunos les gusta. . .

Por suerte está camino a la desaparición. . .

Lentamente. . .

Flash

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Si no tienes nada bueno que decir de algo. . .

No digas nada

A algunos les gusta. . .

Por suerte está camino a la desaparición. . .

Lentamente. . .

Flash

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Si no tienes nada bueno que decir de algo. . .

No digas nada

A algunos les gusta. . .

Por suerte está camino a la desaparición. . .

Lentamente. . .

Flash

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Si no tienes nada bueno que decir de algo. . .

No digas nada

A algunos les gusta. . .

Por suerte está camino a la desaparición. . .

Lentamente. . .

Flash

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Si no tienes nada bueno que decir de algo. . .

No digas nada

A algunos les gusta. . .

Por suerte está camino a la desaparición. . .

Lentamente. . .

Contenidos

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

1 Panorama histórico

2 El ciclo de vida de un desarrollo

3 Bundling

4 Minicación

5 Fin

Sobrecaracterizando

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Los caracteres reseñados en esta sección
son cticios (y pueden estar exagerados).

Cualquier parecido con la realidad es

mera coincidencia.

La visión del desarrollador (1)

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Flickr: aashehadeh

Resolver las necesidades del usuario
Empleamos las últimas versiones
de todo el stack

Mejorando usabilidad
Aumentando funcionalidad
La versión para la cual el autor
mantiene soporte

Única prioridad: La entrega (y, por
ende, un usuario contento y
satisfecho con lo pactado)

La visión del desarrollador (2)

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Mantenibilidad

Si se solicitan adecuaciones, se dará mantenimiento
al sistema
Mientras tanto, si funciona, no lo arregles

Despliegue

Documentación básica
. . . Con suerte cae en el ámbito del
administrador. . .

Seguridad

Emplear bibliotecas con buena trayectoria
demostrada
Es buena práctica, pero. . . ¾Hay procedimientos
para reaccionar ante amenazas imprevistas?

La visión del administrador de sistemas (1)

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Mantener a todos los sistemas ya
existentes funcionando en conjunto
Emplear el menor número posible
de versiones distintas

De ser posible, provistas y
gestionadas por la misma
distribución (al menos en el caso
de Linux)

Principal prioridad: No disrupción
de otros servicios

Neowin

Flickr: Aaron Muszalski

La visión del administrador de sistemas (2)

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Mantenibilidad

Software que me de conictos para su
mantenimiento no entra a mi sistema.
Todo debe ser actualizable de forma regular y
automática

Despliegue

Prueba de stress principal para cualquier desarrollo
Si el programador hizo un excelente trabajo,
veremos un despliegue decente

Seguridad

Múltiples sistemas coinstalados, responsabilidad
sobre un gran número de bellos y únicos copos de
nieve
Revisión proactiva y periódica (½con peligro real de
rechazo!) del software instalado

½DevOps al rescate!

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Popularización de los Development
and Operations
½Metodología ágil!
La tecnología al rescate

Pruebas extensivas
Integración continua
Empleo extensivo de
virtualización/contenedores para
el despliegue: Una máquina
virtual por aplicación

Wikipedia: Scrumban

Flickr: Paul Downey

DevOps: Crónica de un fracaso anunciado

Puntos débiles

de prácticas
comunes en

desarrollos Web

Gunnar Wolf

Panorama
histórico

El ciclo de vida
de un desarrollo

Bundling

Minicación

Fin

Enfoque en la separación entre aplicaciones
Demasiadas máquinas virtuales → demasiadas
instalaciones independientes a mantener
Actualizaciones de seguridad: Siguen rom
  • Links de descarga
http://lwp-l.com/pdf3261

Comentarios de: Puntos débiles de prácticas comunes en desarrollos Web (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad