⚡ ⋆ 。°✩

Bucle creativo

Taller diseñado con el corazón de un docente y la mente de un programador.
Tema: Seguridad en el Desarrollo de Software — Construye como un artesano digital, protege como un guardián estoico.

🎯 Objetivo de aprendizaje

Analizar y aplicar los principios fundamentales de la seguridad en el desarrollo de software (confidencialidad, integridad, disponibilidad), identificando vulnerabilidades comunes como inyección de código o contraseñas débiles, para implementar buenas prácticas de validación, cifrado y control de acceso, desarrollando una actitud crítica, ética y resiliente frente a los desafíos del mundo digital, capaces de construir sistemas confiables que protejan los datos y la privacidad de las personas.

🧠 Competencia

El estudiante diseña pequeños sistemas o fragmentos de software considerando la seguridad desde la fase inicial, aplicando la triada CIA, mitigando vulnerabilidades mediante validación de entradas, autenticación segura y control de privilegios, demostrando responsabilidad técnica y compromiso ético en la protección de la información.

🔥 Activación de la clase: El caso del Colegio Estelar

🏫⚠️
Sistema escolar hackeado
🔓📉
Notas modificadas sin autorización

Imagina que eres desarrollador del sistema "Notas360" en una unidad educativa de Quito. Una mañana, los estudiantes descubren que sus calificaciones fueron alteradas: un alumno común accedió al panel de administrador porque la contraseña del director era "admin123". Además, alguien inyectó código en el buscador de estudiantes y robó datos personales. ¿Qué falló? La seguridad no fue una prioridad. Hoy aprenderás a blindar tus proyectos desde la primera línea de código. ¡La confianza de cientos de usuarios está en tus manos!

📘 Tu caja de herramientas: Seguridad por diseño

🛡️🔐
Tríada CIA
🧪🐞
Vulnerabilidades

La seguridad informática no es un conjunto de candados añadidos al final. Es como construir una casa: si los cimientos son débiles, cualquier tormenta la derrumba. Los tres pilares: Confidencialidad (solo tú y quien tú quieras ven tus datos), Integridad (nadie modifica tu información sin permiso) y Disponibilidad (el sistema responde cuando lo necesitas).

En tu día a día como estudiante, usas apps con login, redes sociales, plataformas educativas. Detrás de cada botón, un programador decidió si validaba datos, si cifraba contraseñas, si aplicaba roles. Las vulnerabilidades como inyección SQL o contraseñas débiles no son magia negra: son descuidos. Y hoy vas a aprender a evitarlos con buenas prácticas.

🔍 Desarrollo: Vulnerabilidades y contramedidas en acción

💉 Inyección de código (SQL Injection)

Si un formulario pide tu nombre y el sistema concatena directamente la entrada, un atacante podría escribir ' OR '1'='1 y obtener acceso total. Solución: Validar siempre, usar consultas parametrizadas.

🔑 Contraseñas débiles y autenticación

Usar "123456" es como dejar la puerta de tu casa abierta. Implementa mínimo 8 caracteres, mayúsculas, números y símbolos. Además, nunca guardes texto plano; cifra con hash.

📁 Control de acceso (Roles)

El principio de mínimo privilegio: un alumno no debe poder editar notas. Definir roles (estudiante, docente, admin) y validar cada solicitud.

🔒 Cifrado y protección de datos

Usa HTTPS, cifra datos sensibles, anonimiza cuando no necesites identidad directa.

⚙️✅ Ejemplo mental: Validar entrada = frenar ataques

💻 Desarrollo práctico: Simulador de login seguro

A continuación, un mini simulador que refleja autenticación insegura vs reflexión de buenas prácticas. Observa el código mental y cómo se valida (simulación conceptual).

🔐 Simulacro de validación (Front-end didáctico): Para entender la importancia de cifrado y control de acceso, presiona "Validar concepto".

🚀 Tarea para el estudiante: "Escudo AntiVuln"

Contexto: Desarrolla (en pseudocódigo o JavaScript sencillo) una función de registro de usuarios para una plataforma educativa. Debe incluir: validación de que la contraseña tenga al menos 8 caracteres, un número y una mayúscula; almacenar la contraseña "cifrada" (simula con un hash básico usando btoa como ejemplo didáctico); implementar control de roles: si el usuario se registra como "admin" y no tiene código especial, denegar privilegios. Además, evitar inyección: al mostrar un mensaje de bienvenida, asegurar que no se ejecute código HTML malicioso.

Reflexión: ¿Qué pasa si no validamos los datos? ¿Cómo proteges la confidencialidad de las contraseñas? Entrega un pequeño script comentado.

🎮 Evaluación lúdica: El desafío del guardián digital