488 words
2 minutes
1.15 Frameworks, Seguridad Y Buenas Prácticas En Programación Web

1. Seguridad del framework: CVE#

Antes de elegir un framework es importante revisar sus vulnerabilidades reportadas en CVE (Common Vulnerabilities and Exposures).

  • Verde → Pocas vulnerabilidades críticas, se considera seguro.
  • Amarillo → Algunas vulnerabilidades moderadas, requiere parches.
  • Rojo → Vulnerabilidades graves o no corregidas, conviene evitarlo.

Para verificar esto se puede buscar en cve.org, en Google, o servicios como Netcraft. Lo ideal es usar un framework con pocos registros en rojo.


2. Características deseables en un framework#

a) Arquitectura MVC#

El framework debe separar la aplicación en tres capas:

  • Modelo: gestión de datos y reglas de negocio.
  • Vista: interfaz de usuario.
  • Controlador: coordina interacciones entre modelo y vista.

📌 Ejemplo: Al registrar un artículo en un sistema de inventario:

  • Datos: nombre, precio, stock, descripción.
  • El ID no lo ingresa el usuario: el framework lo gestiona automáticamente.
  • Restricciones: precio máximo, validación de caracteres en el nombre, etc. Estas validaciones pueden venir del negocio (ej. cajero) y se programan en el framework.

b) ORM (Object-Relational Mapping)#

  • El framework incluye un mapeador objeto-relacional para conectar el código con la base de datos.

  • No se definen índices manualmente, el framework gestiona claves primarias.

  • Flujo típico:

    migración -> base de datos -> datos de prueba -> rollback (deshacer cambios)
  • Todos los ORM comparten la misma lógica básica, por lo que aprender uno ayuda a entender los demás.


3. Buenas prácticas con frameworks#

  • Singleton: centralizar gestión de recursos (ej. conexión a la DB).
  • Encriptar credenciales: nunca almacenar contraseñas en texto plano.
  • RBAC (Role-Based Access Control): dar privilegios mínimos necesarios a cada usuario.

🔹 Para desarrollo:

  • Usar SQLite porque es ligero y fácil de migrar a otra base de datos después.
  • Permite ahorrar recursos y acelerar pruebas.

🔹 Para pruebas:

  • Unit Tests (UT): validan módulos pequeños.
  • Selenium: permite automatizar pruebas en navegadores como Chrome o Chromium.

4. Cliente-servidor y protocolos#

  • REST: estándar para construir APIs.

    • GET: recuperar información (ej. una URL con parámetros).
    • POST: enviar datos en el cuerpo de la petición, no visibles en la URL.
    • DELETE: eliminar un recurso (ej. registro en la DB).

⚠️ Importante:

  • POST permite enviar grandes volúmenes de datos (dependiendo de configuración del servidor, como en nginx).
  • La codificación de caracteres debe ser UTF-8 o UTF-16 para soportar múltiples idiomas.

5. Herramientas de apoyo#

  • Git: control de versiones del código y soporte para pruebas automatizadas.
  • JSON + FastAPI: estructurar datos y definir endpoints de prueba.
  • Profiling / Telemetría (ej. Grafana): analizar rendimiento, detectar cuellos de botella y mejorar eficiencia.

Glosario#

  • CVE (Common Vulnerabilities and Exposures): catálogo de vulnerabilidades de seguridad conocidas en software.
  • MVC (Modelo-Vista-Controlador): patrón de diseño que organiza aplicaciones en capas.
  • ORM (Object-Relational Mapping): herramienta que conecta objetos en código con tablas de bases de datos.
  • Migración: conjunto de instrucciones para modificar la estructura de una base de datos (crear tablas, añadir columnas, etc.).
  • Rollback: deshacer cambios en la base de datos para volver a un estado anterior.
  • Singleton: patrón de diseño para que una clase solo tenga una instancia global.
  • RBAC (Role-Based Access Control): control de acceso según roles de usuario.
  • REST (Representational State Transfer): arquitectura para diseñar APIs con métodos HTTP estándar.
  • Unit Test: prueba automatizada de una unidad pequeña de código.
  • Selenium: framework de pruebas que automatiza navegadores web.
  • UTF-8/UTF-16: estándares de codificación de caracteres que soportan múltiples lenguajes.
1.15 Frameworks, Seguridad Y Buenas Prácticas En Programación Web
https://jangelmm.github.io/posts/informatica/ingenieriasoftware/programacion-web/1-introducción-a-las-aplicaciones-web/115-frameworks-seguridad-y-buenas-prácticas-en-programación-web/
Author
Jesús Ángel Martínez Mendoza
Published at
2025-09-24
License
CC BY-NC-SA 4.0