Parte 5 — Identidad y seguridad#
Quién eres, qué puedes hacer, y las defensas que el framework trae o no trae puestas.
Clases 66 a 78 · 13 en total · 13 construidas · 13 tecnologías en juego.
🧭 De qué va esta parte#
Trece clases sobre lo que ocurre cuando alguien intenta usar el sistema de una forma que no estaba prevista.
No es una parte sobre criptografía. Es sobre las decisiones que un framework toma por ti y las que te deja: si escapa por omisión, si trae el testigo CSRF puesto, si su ORM cierra la inyección por construcción, si te obliga a distinguir el 401 del 403.
Y es la parte donde más se nota la diferencia entre lo que un framework permite y lo que garantiza. Un framework que hace difícil el error correcto es peor que uno que lo hace imposible, aunque los dos «se puedan usar bien».
🎒 Qué da por sabido#
- Las partes 1 a 4, sobre todo la tubería de la parte 2: casi toda la defensa vive ahí.
- Qué es una cookie y qué significan sus atributos (conocimientos previos).
🎯 Qué sabrás hacer al terminarla#
- Montar sesión con cookie y token de acceso, y decir qué se gana y qué se pierde con cada uno.
- Guardar contraseñas con una función de derivación lenta, y cerrar la enumeración de usuarios en la respuesta y en el tiempo.
- Implementar el flujo de OAuth 2.0 con PKCE, y explicar qué ataque cierra cada defensa.
- Distinguir autorización por rol de autorización por recurso, y por qué la segunda no se puede declarar.
- Cerrar CSRF, XSS e inyección SQL, y nombrar en cada framework la puerta explícita que las reabre.
- Auditar las dependencias que no elegiste y decidir qué hacer con un hallazgo transitivo.
🧵 Por qué en este orden#
Las cuatro primeras responden «quién eres»: sesión, token, contraseñas y el protocolo estándar para delegarlo.
Las dos siguientes responden «qué puedes»: por rol y por recurso, que son preguntas de naturaleza distinta.
Las siete últimas son los ataques concretos y sus defensas: CSRF, XSS, inyección, secretos, auditoría, política de contenido y dependencias vulnerables. En ese orden porque cada uno usa lo anterior.
📚 Las clases#
| # | Clase | Qué resuelve | Nivel | Estado |
|---|---|---|---|---|
| 066 | Sesión con cookie | Recordar al usuario entre peticiones sin exponerlo. | 🟡 intermedio | ✅ Construida |
| 067 | Token de acceso | Firmar y verificar una credencial sin estado en el servidor. | 🟡 intermedio | ✅ Construida |
| 068 | Contraseñas bien guardadas | Almacenar de forma que un volcado no las revele. | 🟡 intermedio | ✅ Construida |
| 069 | OAuth 2.0 y OpenID Connect | Delegar la identidad sin manejar credenciales ajenas. | 🔴 avanzado | ✅ Construida |
| 070 | Autorización por rol | Separar quién eres de qué puedes hacer. | 🟡 intermedio | ✅ Construida |
| 071 | Autorización por recurso | Comprobar la propiedad del dato, no solo el rol. | 🔴 avanzado | ✅ Construida |
| 072 | CSRF | Entender el ataque antes de activar la defensa. | 🟡 intermedio | ✅ Construida |
| 073 | XSS y escapado | Ver qué escapa el framework por omisión y qué no. | 🟡 intermedio | ✅ Construida |
| 074 | Inyección SQL | Comprobar que la consulta parametrizada lo es de verdad. | 🟡 intermedio | ✅ Construida |
| 075 | Secretos y configuración | Sacar del código lo que no puede estar en el repositorio. | 🟡 intermedio | ✅ Construida |
| 076 | Auditoría | Dejar rastro de quién hizo qué, utilizable después. | 🔴 avanzado | ✅ Construida |
| 077 | Política de seguridad de contenido | Limitar lo que el navegador acepta ejecutar. | 🔴 avanzado | ✅ Construida |
| 078 | Dependencias vulnerables | Saber qué arrastras y cuándo te expone. | 🟡 intermedio | ✅ Construida |
🎬 Las tecnologías que aparecen#
Entre paréntesis, en cuántas clases de esta parte interviene cada una. Estar aquí no es una recomendación: es que el problema de esa clase existe de verdad para esa tecnología.
| Ecosistema | Tecnologías |
|---|---|
| JavaScript/TypeScript | React (2), SolidJS (2), Svelte (2), Vue (2), Lit (1), Prisma ORM (1) |
| .NET | ASP.NET Core (10), Entity Framework Core (1) |
| Python | FastAPI (10), SQLAlchemy (1) |
| JVM | Spring Boot (10), Hibernate ORM (1) |
| Node.js | Express (10) |
📖 Las palabras que esta parte define#
Sesión · Cookie · Fijación de sesión · Token de acceso · Función de derivación de clave · Comparación en tiempo constante · Enumeración de usuarios · OAuth 2.0 · OpenID Connect · PKCE · Autorización por rol · Autorización por recurso · Seguro (método) · CSRF · Testigo sincronizado · XSS · Inyección SQL · Consulta parametrizada · Configuración por entorno · Secreto · Auditoría · Política de seguridad de contenido · Nonce · Archivo de bloqueo · Dependencia transitiva · Versionado semántico · Cadena de suministro
Todas, con su definición, en el glosario.
✅ Cómo se ejecuta una clase de esta parte#
node scripts/run-class.mjs 066El verificador arranca cada implementación, la somete a su contrato.json y declara cuáles omitió por no encontrar su cadena de herramientas. Si te faltan cadenas, node scripts/doctor.mjs dice cuáles y cómo se instalan.
➡️ Y después#
La parte 6 cambia de lado del cable: del servidor que responde al navegador que pinta.