[FEAT] Canale anonimo Vocea: pagina pubblica pre-login (scheletro) + risposta a Vocea
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=<slug> (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) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
1fe5b7ae61
commit
b787c327c1
@@ -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=<slug>` (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/<slug>?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=<slug>`);
|
||||
- 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
|
||||
Reference in New Issue
Block a user