Verifica e trasparenza della governance

Questa pagina spiega i controlli utilizzati da PayCal per verificare il comportamento e applicare i controlli operativi nella produzione.

Cosa intendiamo per governance

Per noi, governance significa policy codificate in percorsi di codice, limiti, test e controlli di distribuzione. Non è una promessa solo documentale.

I riferimenti seguenti corrispondono ai punti di implementazione in questo repository in modo che le affermazioni possano essere verificate in modo indipendente.

Metadati di verifica

Metadati del percorso

  • Itinerario: /transparency/verification-governance/
  • Ultima verifica:
  • Prossima revisione prevista:
  • Ambito di verifica: revisione manuale delle implementazioni dei gate descritte rispetto agli hook attuali, ai controlli della pipeline CI e ai percorsi di controllo di runtime.

Limitazioni note

  • Le descrizioni dei cancelli vengono gestite manualmente; è previsto un riferimento incrociato automatizzato tra questa pagina e la configurazione hook/pipeline per la chiusura trimestrale.
  • I valori limite di runtime riflettono i valori predefiniti; le sostituzioni specifiche dell'ambiente possono differire nelle istanze non di sviluppo.

Questi metadati vengono aggiornati trimestralmente come parte della chiusura dell'audit di governance.

Stato attuale del controllo di sicurezza

A partire dal 24-03-2026, PayCal rimane nello stato PASS dopo l'espansione da BRS-01 a BRS-05 e la sincronizzazione igienica del rilascio successivo.

I dettagli sullo stato pubblico e i riferimenti alle prove sono pubblicati su /transparency/security-audit/.

1) Porte della politica locale (Git Hooks)

Gli hook locali bloccano le unioni non sicure prima che il codice raggiunga i rami condivisi.

  • githooks/pre-commit runs PHPStan Level 9 on staged PHP files under html/.
  • githooks/pre-commit blocks baseline usage in phpstan.neon and blocks phpstan-baseline.neon.
  • githooks/pre-push runs full-repo PHPStan Level 9 and applies the same baseline-blocking policy.

Questi cancelli riducono la possibilità di derive politiche e di regressioni silenziose sulla qualità.

2) Pipeline di verifica CI

Il flusso di lavoro CI esegue livelli di test progressivamente più profondi, dalla convalida rapida alla verifica in stile stress.

  • .github/workflows/phpunit.yml Stage 2: composer run test:all (unit + integration + contract).
  • .github/workflows/phpunit.yml Stage 3: composer run test:random (order-randomized).
  • .github/workflows/phpunit.yml Stage 3: composer run test:coverage.
  • .github/workflows/phpunit.yml Stage 4: mutation test job.

Representative contract/integration suites include html/tests/Integration/KekContractTest.php, html/tests/Integration/RedisContractTest.php, and contract tests under html/tests/Contract/.

3) Limiti della velocità di esecuzione e governance degli input

Gli endpoint operativi sono vincolati da finestre di richiesta esplicite e regole di convalida del payload.

  • html/src/Domain/RateLimiter.php defines per-minute endpoint and IP limits, including telemetry (90/minute).
  • html/src/Controllers/TelemetryController.php enforces authentication and telemetry rate limits before accepting events.
  • html/src/Controllers/TelemetryController.php bounds event type format with a strict regex to control key cardinality.
  • html/src/Controllers/EmailVerificationController.php applies retry windows with TTL-backed rate-limit keys.

Questi controlli hanno lo scopo di mantenere il comportamento prevedibile sia in modelli di traffico normali che abusivi.

4) TTL e governance dei limiti di sicurezza

I limiti di flusso sensibili alla sicurezza sono definiti a livello centrale e delimitati da vincoli minimo/massimo.

  • html/src/system-limits-master.php includes enable_rate_limiting and account-recovery controls.
  • I limiti di ripristino dell'account includono il codice TTL, i tempi di recupero del nuovo invio, il numero massimo di tentativi di verifica, le finestre di riproduzione e i TTL del blocco IP con hash.
  • html/src/Domain/AccountRecoveryAbuseGuard.php records replay telemetry and applies automatic hashed-IP blocking when thresholds are exceeded.
  • html/src/Domain/AccountRecoveryTransaction.php enforces transaction/proof/bootstrap expiries from system limits.

Questa struttura consente aggiornamenti controllati delle policy senza oltrepassare i limiti digitati.

5) CSP e controlli sulla consegna degli asset

Le pagine rivolte al pubblico sono regolate da criteri espliciti di sicurezza dei contenuti e da rendering di script/stili non sensibili.

  • html/header.php builds and emits CSP directives including default-src 'none' and strict script-src/style-src policies.
  • html/header.php includes Trusted Types policy directives.
  • html/src/Domain/Render.php supports nonce-based module script rendering.

Questi controlli limitano le superfici eseguibili e fanno parte del nostro modello di governance di base.

Come verificare queste affermazioni

Gli sviluppatori possono riprodurre i segnali di verifica direttamente in questo repository:

# Static analysis gates
bash githooks/pre-commit
bash githooks/pre-push

# Test pipeline equivalents
cd html
composer run test:all
composer run test:random
composer run test:coverage

Ultimo aggiornamento: March 24, 2026.