Parte 2 - Tema 8 Flashcards
Aplicaciones web
¿Qué es la arquitectura de desarrollo web?
Es la estructura y organización de un sitio web o aplicación web, definiendo cómo se relacionan los diferentes componentes y cómo interactúan entre sí.
¿Cuál es el objetivo principal de una buena arquitectura web?
Crear aplicaciones web escalables, mantenibles, seguras y eficientes, que satisfagan las necesidades de los usuarios y del negocio.
Separación de preocupaciones (SoC)
Separar las diferentes funcionalidades de una aplicación en módulos independientes
No repetirse (DRY)
Evitar la duplicación de código, promoviendo la reutilización.
KISS (Keep It Simple, Stupid)
Optar por soluciones simples y fáciles de entender.
YAGNI (You Aren’t Gonna Need It)
Implementar solo lo que se necesita en este momento, evitando funcionalidades innecesarias.
Alta cohesión y bajo acoplamiento
Los módulos deben ser altamente cohesivos (alta relación entre sus componentes) y bajo acoplamiento (baja dependencia de otros módulos).
Abstracción
Ocultar la complejidad interna de los componentes, exponiendo solo las interfaces necesarias.
Modularidad
Dividir el sistema en módulos independientes que puedan ser desarrollados, probados y desplegados por separado.
¿Cómo se garantiza la escalabilidad y el rendimiento en una arquitectura web?
- Horizontal scaling: Agregar más servidores para manejar un mayor número de usuarios.
- Vertical scaling: Mejorar el hardware de un servidor existente.
- Caching: Almacenar resultados de cálculos costosos para reducir el tiempo de respuesta.
- Optimización de bases de datos: Indexar tablas, utilizar consultas eficientes.
- Minificación y compresión: Reducir el tamaño de archivos HTML, CSS y JavaScript.
¿Cuáles son los principales aspectos a considerar en la seguridad de una arquitectura web?
- Autenticación y autorización: Verificar la identidad de los usuarios y controlar sus permisos.
- Encriptación: Proteger los datos sensibles.
- Gestión de errores: Manejar correctamente los errores para evitar la divulgación de información sensible.
- Protección contra ataques: Protegerse contra ataques como inyección SQL, XSS, CSRF.
Inyección SQL (SQL Injection)
Es una vulnerabilidad que permite a los atacantes inyectar código SQL malicioso en las consultas de una base de datos, lo que puede llevar a la exposición, modificación o eliminación de datos
Cross-Site Scripting (XSS)
Es una vulnerabilidad que permite a los atacantes inyectar código cliente (generalmente JavaScript) en una página web, que luego se ejecuta en el navegador del usuario.
Cross-Site Request Forgery (CSRF)
Es un ataque en el que un atacante engaña a una víctima autenticada para que ejecute acciones no deseadas en una aplicación web.
¿Qué es el desarrollo frontend?
Es la parte de la programación web que se encarga de la interfaz de usuario, es decir, todo lo que el usuario ve e interactúa en un sitio web.