You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
validate: redigere i parametri sensibili delle query-string negli artifact tracciati #436
Residuo della review di #435 (finding Low, latente).
Il problema
Da #435 l'URL che va al probe è quello intero, query inclusa (è l'identità della risorsa per molte fonti: index.php?tree=2025CIVATOT0201&export=3). Quella query finisce quindi nei parquet tracciati in git:
data/pipeline/validated.parquet (committato in questo repo)
out/so/validated.parquet nei repo dati (gitignorato, ma è l'input del catalog)
Stato attuale, misurato sulla versione committata: 11.501 righe, 0 con query (venivano troncate prima di #435). Dopo il primo run post-merge conterranno le query. I soli parametri presenti oggi sono format (4953), d (147), t (1): nessuna credenziale.
Il rischio è latente: una fonte con URL firmati o tokenizzati (?token=, ?sig=, ?api_key=, ?access_token=, presigned S3, …) verrebbe persistita in chiaro in un file committato.
Proposta
Redazione dei valori dei parametri sensibili al momento della scrittura dell'artifact:
lista di nomi di parametro (token, key, api_key, apikey, sig, signature, secret, password, pwd, auth, access_token, X-Amz-Signature, …) → valore sostituito con ***;
applicata solo alla copia persistita (result["url"] / riga del parquet), non a quella usata per il probe o per il matching del drift (che ha bisogno della query integra);
test con URL firmato sintetico: la query resta nel probe, il valore sensibile non compare nel parquet.
Alternativa minima già adottata in #435: nota esplicita in docs/runbook.md (fatta) — sufficiente finché non onboardiamo una fonte tokenizzata, ma non è una difesa: è una promessa di ricordarsene.
Quando serve
Prima del primo onboard di una fonte con URL firmati/tokenizzati. Non urgente oggi: nessuna delle fonti osservate usa credenziali in query-string.
Activity