# Security Remediation e Routing Legacy

Usa questa reference quando il task riguarda XSS, CSRF/XSRF, header, cookie, upload o quando il contesto e' legacy cliente deploy.

## Regola di priorita'

- Prima usa questi riferimenti locali della skill.
- Usa `docs-node` solo come supporto opzionale di verifica.
- Se il caso richiede ticket, commit, report scan, piu ambienti o piu repo, passa a `mcp-technical-analyst`.

## Distinzione root cause

Classifica subito il fix:
- `Applicazione`: encode, token, validazioni, upload, logica CFML.
- `Application server`: impostazioni ColdFusion, cookie, HTTP status, hotfix.
- `Web server / site`: `web.config`, header, TRACE, HSTS, TLS, info leaks.
- `Infrastructure / OS`: cifrature o componenti di sistema fuori dal codice applicativo.

## XSS

Regole base:
- output HTML: `encodeForHtml()`
- attributi HTML: `encodeForHtmlAttribute()`
- JavaScript dinamico: `encodeForJavascript()`
- se trovi `htmlEditFormat()`, sostituiscilo con l'encode corretto invece di concatenare le due cose.

Checklist:
- riprodurre il caso partendo dallo scan o dal payload noto;
- trovare il vero punto di output, anche se sta in manager padre / libreria / basepagemanager;
- correggere il punto di output o il punto di valorizzazione piu corretto;
- riesaminare tutta la pagina vecchia o "disegnata a mano", non solo il campo segnalato.

## CSRF / XSRF

Regole base:
- ogni form deve avere un token generato con `CSRFGenerateToken()`;
- al submit usare `CSRFverifyToken()`;
- per le pagine manager la gestione puo stare in `easy.cfc` / `basepagemanager.cfc`;
- per DWR / `cfajax` il token va passato anche nelle chiamate AJAX.

## Header, cookie, upload

- cookie `Secure` / `HttpOnly`: distinguere tra configurazione CF Admin e fix applicativo;
- header `X-Content-Type-Options`, `X-Xss-Protection`, `X-Frame-Options`, `Cache-Control`, `TRACE`: tipicamente web server / site;
- upload arbitrario: da Platform 7.0 esiste protezione centralizzata in `Application.cfc`, prima serve analisi puntuale dei punti upload.

## Triage security scan

Se il task nasce da uno scan:
- censire la vulnerabilita' e la root cause;
- distinguere `Resolved`, `Planned`, `Roadmap`, `n/a` se stai lavorando con ticket e analisi formalizzate;
- usare `mcp-git-mantis-workflow` o `mcp-technical-analyst` se serve ricostruire remediation, ticket e release.

## Routing legacy `cliente deploy`

Usa il ramo legacy solo se il contesto e' esplicitamente pre-Platform o deploy cliente.

Regole:
- non promuovere esempi legacy a standard Platform;
- `Mediolanum` va trattato come cliente deploy legacy;
- i casi legacy possono richiedere fix puntuali su codice storico o incompatibilita' tra core migrato e personalizzazioni client;
- se il fix coinvolge percorso standard Platform, mantieni separati i due workflow.

## Verifiche minime

- lint in audit;
- log applicativi o `cfajax` letti dopo il fix;
- browser validation per login, submit, header o payload riflessi;
- riesecuzione scan quando il caso nasce da VA/PT o report cliente.
