Fundamentos de AppSec
Lenguaje, principios y colaboración para comprender el riesgo del software.
Formación continua
Dos líneas educativas para aprender a diseñar, construir y proteger software: AppSec y Dev .NET y C#. Sigue rutas progresivas con prácticas guiadas y un caso ficticio que evoluciona contigo.
Elige una línea y avanza a tu ritmo. Ambas comparten prácticas sobre Reserva de espacios.
Línea educativa
Aprende a identificar riesgos, modelar amenazas y diseñar controles de seguridad verificables.
Lenguaje, principios y colaboración para comprender el riesgo del software.
Desde requisitos e historias de abuso hasta STRIDE, controles y un modelo vivo.
Identidades, sesiones, permisos por recurso, contratos de API, eventos y operaciones críticas.
Línea educativa
Aprende a construir software mantenible con C#, .NET, arquitectura, pruebas y buenas prácticas de producción.
Organiza reglas y servicios con encapsulación, composición, LINQ y operaciones asíncronas.
Construye la entrada de la API con DI, middleware, configuración tipada y contratos versionables.
Persiste reservas con restricciones, migraciones revisables y control de cambios simultáneos.
Distingue solicitudes inválidas, rechazos del negocio y excepciones inesperadas.
Separa responsabilidades y encapsula consultas reutilizables con límites claros.
Organiza resultados, lecturas y escrituras sin introducir complejidad innecesaria.
Conecta tokens y políticas con permisos sobre reservas, límites de uso y pruebas de abuso.
Verifica reglas y dependencias reales y construye evidencia de una entrega reproducible.
Explorar contenido
Busca un concepto o filtra por línea educativa y ruta. Cada contenido incorpora práctica, solución orientativa, notas y recursos descargables.
69 contenidos · AppSec y Dev .NET y C#
Una introducción a la seguridad de aplicaciones como disciplina transversal al producto, la arquitectura, el desarrollo y la operación.
El vocabulario mínimo para analizar seguridad con precisión y priorizar aquello que realmente puede afectar al negocio.
Mínimo privilegio, defensa en profundidad, validación explícita, configuración segura y fallos controlados como guía de diseño.
Cómo identificar entradas, flujos y cambios de confianza antes de que se conviertan en rutas de explotación.
La seguridad integrada desde requisitos hasta operación mediante actividades proporcionales al riesgo y evidencia automatizada.
Tres perspectivas complementarias que deben coordinarse sin confundir responsabilidades ni convertir la automatización en un fin.
Convierte riesgos y operaciones sensibles en requisitos verificables antes de diseñar o programar.
Representa actores, procesos, almacenes y flujos para hacer visible dónde cambia la confianza.
Construye escenarios plausibles a partir de activos, capacidades del actor y rutas de acceso.
Utiliza seis categorías como lista de exploración para encontrar amenazas sin reemplazar el razonamiento del negocio.
Transforma amenazas en decisiones ejecutables mediante riesgo razonado, controles y trabajo priorizado.
Mantén el análisis conectado con cambios, incidentes y decisiones durante toda la vida del producto.
Distingue quién actúa, cómo se verifica su identidad y qué operaciones puede ejecutar sobre cada reserva.
Diseña el inicio de sesión y un contrato de validación que distinga tokens de identidad, acceso y renovación.
Construye una política que impida consultar, modificar o aprobar reservas ajenas aunque la sesión sea válida.
Define qué acepta y devuelve cada endpoint y cómo controla concurrencia, consumo de recursos y errores.
Diseña confirmaciones y notificaciones que toleren duplicados sin aceptar mensajes falsificados o antiguos.
Conecta separación de funciones, reautenticación, control de versiones y evidencia de decisiones.
El SDK reúne compilador, plantillas y herramientas; el runtime ejecuta aplicaciones.
Programación orientada a objetos organiza estado y comportamiento mediante contratos.
Una entidad conserva identidad a lo largo de cambios; un objeto de valor representa un concepto que se compara por sus valores.
SOLID ofrece cinco preguntas para evaluar diseño: qué cambia una clase, cómo extender una variación, qué promete un subtipo, qué capacidades necesita un consumidor y hacia qué dependencia apunta el caso de uso.
Una colección expresa un conjunto de elementos; el tipo genérico indica qué operaciones y valores acepta.
Una operación asíncrona devuelve una promesa de finalización.
La mantenibilidad empieza por poder comprender intención, efectos y límites.
Una API modela recursos y ofrece operaciones con semántica predecible.
Minimal APIs reduce la ceremonia para definir entrada HTTP.
La inyección entrega colaboradores desde fuera en lugar de construirlos dentro de cada consumidor.
El ciclo de vida define cuándo se crea y comparte una instancia.
Cada middleware puede trabajar antes y después del siguiente componente, o detener el recorrido.
La configuración combina proveedores con precedencia.
Options agrupa valores relacionados en un contrato tipado.
Versionar hace visible que dos consumidores pueden depender de contratos diferentes.
DbContext coordina entidades rastreadas y cambios pendientes.
El modelo de EF define cómo se mapea un objeto a persistencia.
Una relación vincula una clave foránea con una entidad principal.
Un DTO es un contrato de entrada o salida, no una entidad persistida.
Una migración captura cambios entre modelos y produce operaciones para evolucionar la base.
Una transacción agrupa cambios para que se confirmen juntos o se descarten.
La concurrencia optimista compara una versión original con la actual al escribir.
Una consulta eficiente recupera los datos necesarios con trabajo acotado.
Un validador de entrada organiza reglas de formato y límites antes del caso de uso.
ProblemDetails ofrece un formato para describir errores de HTTP.
Una excepción expresa un fallo que interrumpe el recorrido normal.
Una plantilla de log conserva propiedades separadas de la frase.
El modelado del dominio empieza por palabras y reglas del negocio.
Clean Architecture conserva reglas de negocio independientes de transporte y almacenamiento.
Un repositorio ofrece acceso a agregados mediante un contrato orientado al caso de uso.
Una especificación da nombre a un criterio reutilizable.
Result representa éxito o un rechazo previsto sin convertir cada decisión en una excepción.
CQRS separa intención de cambiar estado de intención de obtener una vista.
Un mediador conecta un mensaje con su handler y puede aplicar comportamientos comunes.
Una respuesta perdida puede llevar al cliente a repetir una solicitud ya confirmada.
Un antipatrón es una solución que parece conveniente pero introduce un costo repetido.
Un módulo separa responsabilidades dentro de un despliegue.
Autenticar significa comprobar quién presenta una solicitud.
Una política expresa una condición de acceso reutilizable.
Un permiso general no responde si la reserva concreta pertenece al grupo del usuario.
Un access token breve reduce el tiempo durante el que una credencial robada puede usarse.
CORS decide qué orígenes pueden leer respuestas mediante JavaScript en navegadores.
Limitar solicitudes controla el consumo de capacidad.
Una prueba unitaria verifica una regla con pocas dependencias y una causa de fallo comprensible.
Una prueba de integración comprueba colaboraciones reales: serialización, middleware, autorización, endpoints y almacenamiento.
Las reglas de dependencias pueden verificarse automáticamente.
Una biblioteca aporta una capacidad y también una dependencia operativa.
Una señal de vida indica que el proceso puede responder.
Los logs describen eventos, las métricas cuantifican comportamiento y las trazas relacionan operaciones de una solicitud.
Una imagen empaqueta una aplicación con su entorno de ejecución.
La integración continua ejecuta controles sobre una revisión identificable.
Caso educativo · Reserva de espacios
Reserva de espacios es un caso ficticio creado para aprender AppSec. Trabaja con salas, grupos, solicitudes y notificaciones de ejemplo; los componentes se describen por su función.
AppSec · Ruta 03 · Diseño seguro
Define quién accede a cada reserva, qué valida la API y cómo se conserva la evidencia. Seis sesiones de 40 minutos estimados para lectura y práctica opcional, más un laboratorio integrador de una hora.
Dev .NET y C# · Ocho rutas
Ocho rutas con 51 lecciones independientes, ejemplos propios, un laboratorio C# y 36 lecturas externas opcionales. Diseña Reserva de espacios con C#, EF Core, Clean Architecture, Repository, Specification y CQRS; verifica permisos y prepara su entrega.
Para consultas sobre Academia de Software: academia@andrezhiguera.cl.
Consulta el origen de los materiales, la atribución y el alcance de la licencia en los descargables y laboratorios. Los artículos externos conservan sus propias condiciones.
Consultar condiciones de uso