Skip to content

validate: redigere i parametri sensibili delle query-string negli artifact tracciati #436

Open

Description

@Gabrymi93

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions