L10 — CSRF en formularios y mutaciones state-changing
~5 h · Semana 3
Objetivo
Identificar operaciones mutables (POST/PUT/DELETE) y aplicar token CSRF , SameSite estricto o patrón equivalente en Agenda Ops.
Por qué importa
Un atacante no necesita XSS si tu sesión acepta POST cross-site.
Conceptos
Pasos (hazlos en orden)
1. Lectura dirigida (60–90 min)
Lee la sección indicada en la ficha de la materia y subraya solo lo que vas a probar hoy en terminal o en projects/.
2. Carpeta de evidencia (15–20 min)
Crea o actualiza la carpeta del proyecto de la materia. Cada lección añade una sección en la bitácora semanal o un archivo dedicado; no disperses notas sueltas.
3. Laboratorio / trabajo documental (90–120 min)
Lista rutas que cambian estado (crear cita, cancelar, perfil). En projects/m18-appsec/csrf-notes.md indica protección por ruta.
Implementa protección mínima en la ruta más crítica (ej. crear cita). Test manual con curl sin token (debe 403).
Referencia OWASP CSRF sheet en el doc.
4. Conexión con el plan (30–45 min)
Escribe un párrafo en la bitácora: cómo lo de hoy afecta al piloto Agenda Ops (M12 en adelante) o a la API que desplegarás en M17/M19. Si aún no tienes SRS , usa el escenario del producto del plan (citas, clientes, panel).
5. Commit atómico (15 min)
git add projects/
git status
git commit -m "docs(m18): l10 csrf-en-formularios-y-mutaciones-state-c"
Lectura de esta lección
| Fuente | Qué leer | Alternativa |
|---|---|---|
| OWASP | CSRF Prevention | M10 CORS |
| Catálogo | Entrada M18 | Bibliografía · M18 |
Hecho cuando
- Lista rutas mutables.
- ≥1 ruta protegida.
- curl sin token falla.
Errores comunes
- Confiar solo en CORS.
- GET que borra datos.