Sicurezza
Come Workflow Webhooks per Shopify Flow protegge i dati del Suo negozio: hosting UE su Google Cloud, crittografia di webhook e segreti, app sempre aggiornata.
Workflow Webhooks è sviluppato e gestito da Code Creation Labs. Questa pagina illustra la struttura dell’applicazione, 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. Le pagine di amministrazione, gli endpoint che ricevono i vostri webhook e i worker che li inoltrano a Shopify Flow costituiscono un unico codice base. |
| Database e cache | PostgreSQL (Google Cloud SQL) e Redis (Google Cloud Memorystore) |
| Coda | Una chiamata in arrivo viene accettata, inserita in coda in Google Cloud Pub/Sub ed elaborata da un worker separato, pertanto né un picco di chiamate né una risposta lenta da parte di Shopify comportano mai la mancata consegna. |
| Hosting | Container su Google Kubernetes Engine nella regione europe-west1 (Belgio, Unione Europea) di Google Cloud. I database, le cache e le code sono locali alla regione. |
| Integrazione con Shopify | Le librerie ufficiali delle app di Shopify, i trigger e le azioni di Shopify Flow e i webhook di Shopify |
| La vetrina online del Suo negozio | Nel Suo tema non viene eseguito alcun codice. L'URL opzionale del proxy dell'app per le chiamate del browser (vedere CORS, l'URL del proxy dell'app e le richieste del browser) viene fornito da Shopify sul Suo dominio e verificato tramite la firma di Shopify. |
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, i sistemi che attivano i Suoi webhook e l’app utilizza il protocollo TLS. Il database, la cache e la coda non dispongono di un indirizzo pubblico: sono accessibili esclusivamente dall’interno della nostra rete privata.
In stato di riposo. Tutti i database e gli archivi sono crittografati in stato di riposo 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, il segreto di autenticazione di ciascun webhook e ogni segreto che memorizza per le funzioni di trasformazione. Ogni valore viene crittografato individualmente con AES-256-GCM utilizzando una chiave separata in Cloud KMS, con rotazione automatica delle chiavi, e decrittografato in memoria solo nel momento in cui è necessario. I segreti non vengono mai registrati nei log e non vengono mai restituiti dall’API per sviluppatori né a Sidekick.
Segreti. Le credenziali e le chiavi API del servizio stesso sono conservate in Google Secret Manager e vengono caricate all’avvio del servizio. Non sono presenti né nel codice, né nelle immagini dei container, né nella pipeline di compilazione.
Riduzione al minimo dei dati. L’app non richiede l’accesso ai dati del Suo negozio al momento dell’installazione: l’avvio di un workflow Shopify Flow non richiede alcuna autorizzazione e l’app non legge mai autonomamente prodotti, ordini o clienti. Una richiesta di dati contiene esattamente il payload inviato dal sistema chiamante.
Chi può accedere a cosa
- Solo il Suo negozio. 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 webhook o le consegne di un altro negozio, e una risposta sincrona è associata al negozio che l’ha richiesta.
- Solo richieste verificate. Le pagine all’interno dell’area di amministrazione di Shopify vengono autenticate tramite token di sessione Shopify. I callback di Shopify Flow e i webhook propri di Shopify vengono verificati tramite la firma HMAC di Shopify, mentre i messaggi interni vengono verificati tramite identità firmate da Google, prima che venga effettuato qualsiasi trattamento dei dati.
- I vostri webhook, le vostre regole. Ogni URL di webhook è impossibile da indovinare e siete voi a scegliere in che modo i chiamanti devono autenticarsi: tramite un token statico, una firma HMAC sul corpo del messaggio o nessuna autenticazione per le fonti che non sono in grado di firmare. Un'opzione Elenchi di indirizzi IP autorizzati limita ulteriormente i chiamanti; l'indirizzo del chiamante viene ricavato dalla connessione di rete, non da un'intestazione, pertanto non può essere falsificato. Le consegne duplicate vengono riconosciute ed elaborate una sola volta. Si veda Autenticazione.
- Funzioni di trasformazione. Il codice JavaScript che scrivete per Funzioni di trasformazione 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 vostro token di accesso Shopify, e le sue richieste in uscita vengono verificate rispetto agli intervalli di rete privati prima della connessione.
- Richieste in uscita. Gli URL a cui l’app effettua richieste per conto dell’utente, sia per Interrogazione periodica degli URL che per Chiamata di un webhook da Shopify Flow, vengono verificati prima della connessione: gli indirizzi di loopback, link-local, metadati cloud e rete privata vengono rifiutati, anche in caso di reindirizzamento.
- 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. Effettuiamo a intervalli regolari una verifica interna completa di ogni percorso, tracciato dei dati e query sul database; l’ultima di queste verifiche risale all’ottobre 2026.
- Monitoraggio. La disponibilità viene monitorata 24 ore su 24 e pubblicata sulla nostra pagina di stato; eventuali errori ci avvisano. I registri operativi vengono conservati per un massimo di 30 giorni e non contengono mai token o informazioni riservate.
Conservazione e cancellazione
- La cronologia delle consegne rimane disponibile finché l'app è installata, in modo da poter controllare e riascoltare le chiamate; è inoltre possibile eliminare le voci in qualsiasi momento. Le intestazioni che potrebbero contenere credenziali vengono mascherate prima che una consegna venga archiviata.
- 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 rimanenti del negozio, compreso tutto ciò che è stato memorizzato dalle vostre funzioni di trasformazione.
- Shopify
- I sub-responsabili del trattamento e il calendario completo dei tempi di conservazione sono riportati nell’policy. È possibile richiedere un accordo di trattamento dei dati firmato all’indirizzo [workflow-webhooks.app/dpaxml-ph-0004.
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.
