Spring GDS 25 Aniversario
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
El cross-site scripting es una vulnerabilidad web en la que un atacante inyecta código malicioso en una página que otras personas cargan luego en su navegador. El navegador confía en la página, así que ejecuta el script como si lo hubiera escrito el propio sitio. A partir de ahí, un atacante puede robar cookies de sesión, leer lo que el usuario teclea o actuar como ese usuario. El XSS ataca a quienes visitan un sitio, y eso es lo que lo separa de un ataque del lado del servidor.
Hay tres formas comunes. El XSS almacenado vive en la base de datos, plantado a través de algo como un campo de comentarios, y se dispara para cada visitante que lo carga. El XSS reflejado rebota en el servidor mediante un enlace manipulado, a menudo en un resultado de búsqueda que devuelve la entrada tal cual. El XSS basado en DOM ocurre por completo en el navegador, cuando el código del lado del cliente maneja datos no confiables de forma insegura. Un ejemplo clásico es una caja de comentarios que guarda etiquetas <script> y las reproduce ante cada lector. La causa raíz casi siempre es la misma. Una entrada no confiable acaba en la página sin escaparse ni sanearse.
Las defensas se conocen bien. Escapa la salida según dónde aterrice, valida la entrada al entrar y aplica una Content Security Policy que bloquee la ejecución de scripts donde no deben correr. Los frameworks modernos escapan por defecto, lo cual ayuda, pero cualquier punto que inyecte HTML en bruto puede reabrir la puerta.
Tratamos cada valor que viene de un usuario como hostil hasta que se demuestre lo contrario. La salida se escapa por defecto, la inyección de HTML en bruto se revisa línea por línea y las cabeceras de Content Security Policy se envían como parte del build, no como un añadido de última hora. Los frameworks en los que trabajamos escapan de forma automática, y somos cuidadosos con las pocas vías de escape que saltan esa protección.
Esto forma parte de cómo abordamos la estrategia y el QA governance en el desarrollo web y las aplicaciones web a medida. Los controles de seguridad viven dentro del proceso de revisión, no en una fase aparte que se recorta cuando aprietan los plazos. Hemos construido productos de cara al público para marcas donde un único script inyectado llegaría rápido a una gran audiencia, y esa realidad mantiene la disciplina firme desde el primer commit.
¿Construyes algo público que maneja entradas de usuario? Asegurémonos de que no pueda volverse contra tus visitantes.
Una empresa de logística que envía a 190 países construyó algo para enviarse a sí misma.
Convertir una marca en un negocio que funciona.
Medio millón de personas. Una app. Cero caos.















