From b787c327c1d8c076134fe3007883403cc3b1e559 Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Sat, 27 Jun 2026 08:29:03 +0200 Subject: [PATCH] [FEAT] Canale anonimo Vocea: pagina pubblica pre-login (scheletro) + risposta a Vocea MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit segnala-anonimo.html: pagina PUBBLICA (no checkAuth, no sidebar, no common.js/api.js/ pwa.js, no analytics) che ospiterà l'iframe del canale Vocea, conforme alle 6 regole anonimato StarGateWB: Referrer-Policy no-referrer (meta + iframe), CSP frame-src app.vocea.cloud, slug del canale da ?canale= (nessun id del segnalante nell'URL), postMessage con check event.origin + envelope {source:'vocea'} e NESSUNA persistenza del recovery code (solo autosize). Dormiente finché non c'è lo slug/MS live. + docs/OUTGOING_TO_VOCEA_...: conferma origin frame-ancestors https://nis2.agile.software. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...NG_TO_VOCEA_2026_06_27_anonymity_origin.md | 29 +++++++ public/segnala-anonimo.html | 80 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 docs/OUTGOING_TO_VOCEA_2026_06_27_anonymity_origin.md create mode 100644 public/segnala-anonimo.html diff --git a/docs/OUTGOING_TO_VOCEA_2026_06_27_anonymity_origin.md b/docs/OUTGOING_TO_VOCEA_2026_06_27_anonymity_origin.md new file mode 100644 index 0000000..4f054b0 --- /dev/null +++ b/docs/OUTGOING_TO_VOCEA_2026_06_27_anonymity_origin.md @@ -0,0 +1,29 @@ +# OUTGOING → Vocea / StarGateWB — Anonimato embed: origin + conferma checklist + +> **Da**: NIS2 Agile · **A**: Vocea/StarGateWB · **Data**: 2026-06-27 +> **Rif.**: vostra guida "anonimato del segnalante" del 27/6 → recepita in `docs/STARGATEWB_ANONYMITY_PLACEMENT.md`. + +Grazie per le direttive. Confermiamo l'impostazione e vi diamo l'origin per la CSP. + +## Origin da autorizzare in `frame-ancestors` (lato vostro, su `app.vocea.cloud`) +- **`https://nis2.agile.software`** ← produzione, pagina pubblica del canale. +- (eventuale, da confermare) `https://dimostrazione.agile.software` — solo se dimostreremo il canale in ambiente demo. + +Dal nostro lato autorizziamo **`frame-src https://app.vocea.cloud`** sulla pagina che ospita il widget. + +## Come rispettiamo le 6 regole +1. **Pubblica, senza login**: il canale NON sta nella nostra app (post-login). Abbiamo predisposto una pagina **pubblica e pre-login** dedicata: `https://nis2.agile.software/segnala-anonimo.html?canale=` (nessun `checkAuth`, nessuna sidebar). +2. **Nessun tracciamento dell'apertura**: la pagina è statica, senza script applicativi, senza audit/analytics; non registriamo alcun "passaggio". +3. **Nessun identificativo nell'URL dell'iframe**: `…/it/segnala/?embed=1` (solo lo slug del canale, che NON identifica il segnalante; eventuale `&theme=dark`). +4. **Origin + envelope verificati**: il listener `postMessage` controlla `event.origin === 'https://app.vocea.cloud'` e `data.source === 'vocea'`; gestiamo solo l'autosize, **non salviamo né inoltriamo** il codice di recupero. +5. **Niente fughe**: `Referrer-Policy: no-referrer` (meta + `referrerpolicy` sull'iframe), zero tag analytics/telemetria di terze parti sulla pagina. +6. **CSP allineata**: `frame-src https://app.vocea.cloud` sul nostro origin ↔ vi chiediamo di mettere `https://nis2.agile.software` in `frame-ancestors`. + +## Stato e cosa ci serve da voi +La pagina pubblica è **pronta (scheletro)**, in attesa di: +- lo **slug del canale** per ciascuna organizzazione pilota (la pagina lo prende da `?canale=`); +- il completamento del **deploy del MS** su `api.vocea.cloud` + l'**API key** del canale (per la parte server-to-server / dashboard interna). + +Appena ci date origin-OK sulla `frame-ancestors` + uno slug di test, facciamo lo smoke end-to-end dell'embed. + +— NIS2 Agile diff --git a/public/segnala-anonimo.html b/public/segnala-anonimo.html new file mode 100644 index 0000000..a542c42 --- /dev/null +++ b/public/segnala-anonimo.html @@ -0,0 +1,80 @@ + + + + + Segnala in anonimato + + + + + + + + + + +
+
+ Canale sicuro · cifratura zero-knowledge +

Segnala in anonimato

+

+ Questo canale è cifrato end-to-end: il contenuto della segnalazione e la tua identità non sono + visibili a nessuno, nemmeno a chi gestisce la piattaforma. Non è richiesto alcun accesso + e il tuo passaggio non viene registrato. Al termine ti verrà mostrato un codice di recupero: + conservalo per seguire lo stato della tua segnalazione (è l'unico modo, non è recuperabile). +

+
+
+
+ + + +