Sicurezza
Sicurezza di Workflow Trigger Extensions per Shopify Flow: architettura, hosting nell'UE, crittografia e isolamento dei dati del negozio e aggiornamenti.
Workflow Trigger Extensions è sviluppata e gestita da Code Creation Labs. Questa pagina illustra la struttura dell’app, dove viene eseguita, come vengono protetti i dati del Suo negozio e come provvediamo a mantenere tutto aggiornato. È destinata ai titolari di negozi e a chiunque debba compilare un questionario sulla sicurezza. Gli aspetti legali (informativa sulla privacy, accordo sul trattamento dei dati, sub-responsabili del trattamento) sono disponibili su Note legali e protezione dei dati.
Su quale piattaforma è basata l’app
| Livello | Cosa utilizziamo |
|---|---|
| Codice dell'applicazione | TypeScript su Node.js, una versione attuale con assistenza a lungo termine. Ogni parte dell’applicazione, dalle pagine di amministrazione ai worker che elaborano i vostri eventi, è costituita da un unico codice sorgente. |
| Database e cache | PostgreSQL (Google Cloud SQL) e Redis (Google Cloud Memorystore) |
| Hosting | Container su Google Kubernetes Engine nella regione europe-west1 (Belgio, Unione Europea) di Google Cloud. I database, le cache e l’archiviazione dei file sono locali alla regione. |
| Integrazione con Shopify | Shopify |
| La vetrina online del Suo negozio | Nel Suo tema non viene eseguito nulla. Il pixel web opzionale presente dietro il codice Condizioni di attivazione di Storefront viene eseguito all’interno della sandbox dei pixel di Shopify e viene installato solo quando si attiva un trigger della vetrina online. |
Il servizio non utilizza in alcun modo PHP, WordPress, Java o altri ambienti di esecuzione. L’app è presente nell’App Store di Shopify e ha superato la procedura di revisione delle app di Shopify, che verifica il rispetto dei requisiti di Shopify in materia di sicurezza e protezione dei dati dei clienti.
Come vengono protetti i Suoi dati
Durante il trasferimento. Ogni connessione tra il Suo browser, Shopify e l’app utilizza il protocollo TLS. Il database e la cache non dispongono di un indirizzo pubblico: sono accessibili esclusivamente dall’interno della nostra rete privata.
In stato di archiviazione. Tutti i database e gli spazi di archiviazione sono crittografati in stato di archiviazione con chiavi gestite da noi in Google Cloud KMS.
Crittografia a livello di campo. I valori più sensibili sono protetti da un secondo livello: il token di accesso Shopify del Suo negozio e i dati protetti dei clienti (nomi, indirizzi e-mail, numeri di telefono, indirizzi postali) letti dai trigger relativi ai dati personali con consenso esplicito. Ogni record viene crittografato individualmente con AES-256-GCM utilizzando una chiave separata in Cloud KMS, con rotazione automatica delle chiavi. I valori vengono decrittografati in memoria solo nel momento in cui sono necessari, ad esempio quando si attiva un trigger, e non vengono mai scritti nei log. Il rilevamento delle modifiche sui dati personali confronta gli hash, consentendo all’app di rilevare che un valore è cambiato senza doverlo decrittografare.
Segreti. Le credenziali e le chiavi API sono conservate in Google Secret Manager e vengono caricate all’avvio di un servizio. Non sono presenti nel codice, né nelle immagini dei container, né nella pipeline di compilazione.
Riduzione al minimo dei dati. L’app non richiede alcun accesso ai dati al momento dell’installazione. Ogni autorizzazione è soggetta a consenso esplicito, è limitata a un unico tipo di dati e può essere revocata in qualsiasi momento. Si veda Autorizzazioni e accesso ai dati.
Chi può accedere a cosa
- Solo i Suoi negozi. Ogni record riporta il negozio a cui appartiene e ogni query è limitata al negozio che è stato autenticato. Un negozio non può mai leggere né modificare i dati di un altro negozio.
- Solo richieste verificate. Le pagine all’interno dell’area di amministrazione di Shopify vengono autenticate tramite token di sessione Shopify. I webhook e i callback di Shopify Flow vengono verificati tramite la firma HMAC di Shopify, mentre i messaggi interni vengono verificati tramite identità firmate da Google, prima che venga effettuato qualsiasi accesso ai dati. Ogni evento Shopify viene elaborato una sola volta e deduplicato in base al proprio ID evento.
- Trigger personalizzato. Il codice JavaScript da Lei scritto per Trigger personalizzato viene eseguito in un ambiente sandbox isolato, con limiti di tempo e di memoria, su un’infrastruttura separata dai server dell’app stessa. Non ha mai accesso alle credenziali dell’app né al Suo token di accesso Shopify. L’unico modo in cui può accedere al Suo negozio è tramite un token di breve durata, associato al Suo negozio e che scade entro un minuto.
- Il nostro team. L'accesso ai sistemi di produzione avviene esclusivamente tramite Google Cloud IAM con account individuali. Gli strumenti di manutenzione interni non sono esposti a Internet.
Come manteniamo aggiornata l’app
- Ogni modifica viene analizzata prima di poter essere distribuita. La pipeline esegue controlli di tipo e linting, test statici di sicurezza delle applicazioni (SAST), rilevamento delle informazioni riservate, analisi delle vulnerabilità delle dipendenze e analisi delle immagini dei container. Il nostro requisito minimo per il rilascio è l’assenza totale di vulnerabilità note nelle dipendenze e nell’immagine.
- Runtime e sistema operativo. L’immagine del container, Node.js sulla base Alpine Linux, viene ricompilata ad ogni rilascio, pertanto le patch relative al runtime e al sistema operativo vengono distribuite in modo continuativo. La piattaforma Kubernetes gestita garantisce che i nodi sottostanti siano sempre aggiornati con le patch.
- Piattaforma Shopify. Monitoriamo le versioni delle API di Shopify e gli avvisi di sicurezza relativi alle librerie delle app di Shopify, applicando tempestivamente gli aggiornamenti. L’app funziona con una versione aggiornata dell’API di amministrazione.
- Verifiche di sicurezza. Prima di qualsiasi modifica che riguardi l’autenticazione, le sessioni o l’esposizione dei dati, viene eseguito un audit di sicurezza automatizzato; inoltre, a intervalli regolari, effettuiamo una revisione interna completa di ogni percorso, tracciato dei dati e query sul database; l’ultima di queste revisioni risale all’ottobre 2026.
- Monitoraggio. La disponibilità viene monitorata 24 ore su 24 e pubblicata sulla nostra statuspage; eventuali errori ci avvisano. I registri operativi vengono conservati per un massimo di 30 giorni e non contengono mai token, credenziali riservate o dati dei clienti.
Conservazione e cancellazione
- La cronologia degli eventi viene cancellata automaticamente dopo 30 giorni.
- Le istantanee che l’app conserva per rilevare le modifiche (l’ultimo stato noto di un prodotto, di un ordine o di un cliente) rimangono memorizzate finché l’app è installata, poiché è proprio in base a esse che viene rilevata la modifica successiva.
- Quando disinstallate l’app, il suo accesso al vostro negozio viene immediatamente revocato. La richiesta di cancellazione (shop/redact) di Shopify, che viene inviata 48 ore dopo la disinstallazione, cancella i dati protetti dei clienti e tutte le informazioni memorizzate dal vostro trigger personalizzato.
- Shopify
- I sub-responsabili del trattamento e il calendario completo dei tempi di conservazione sono riportati nell’privacy. È possibile richiedere un accordo di trattamento dei dati firmato all’indirizzo workflow-trigger-extensions.app/dpa.
Segnalazione di un problema di sicurezza
Se ritiene di aver individuato una vulnerabilità o se necessita di compilare un questionario sulla sicurezza, invii un’e-mail all’indirizzo support@codecreationlabs.com. Le segnalazioni relative alla sicurezza vengono esaminate e ricevono una risposta in via prioritaria.
