Lección 10 de 32· M18

Hechas: 0/32(0%)

M18L10Semana 3~5 h

Ficha M18

L10 — CSRF en formularios y mutaciones state-changing

~5 h · Semana 3

Objetivo

Identificar operaciones mutables (POST/PUT/DELETE) y aplicar token CSRF (falsificación de petición en sitios cruzados), SameSite estricto o patrón equivalente en Agenda Ops.

Por qué importa

Un atacante no necesita XSS (cross-site scripting) si tu sesión acepta POST cross-site.

Conceptos

  • Double-submit cookie (si aplica).
  • Token sincronizado.
  • API (interfaz de programación de aplicaciones) JSON + CORS (intercambio de recursos de origen cruzado) no sustituye CSRF en cookies.

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 (proyecto abierto de seguridad en aplicaciones web) 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 (especificación de requisitos de software), 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

  1. Lista rutas mutables.
  2. ≥1 ruta protegida.
  3. curl sin token falla.

Errores comunes

  • Confiar solo en CORS.
  • GET que borra datos.

Siguiente

L11 — Fijación de sesión y logout completo

←→