Sikkerhet
Hvordan Workflow Webhooks for Shopify Flow er bygget, hvor dataene lagres i EU og hvordan webhooks, hemmelige nøkler og leveranser krypteres og beskyttes.
Workflow Webhooks er utviklet og driftes av Code Creation Labs. Denne siden forklarer hva appen består av, hvor den kjører, hvordan dataene til nettbutikken din beskyttes og hvordan vi holder alt oppdatert. Den er skrevet for nettbutikkeiere og for alle som fyller ut et sikkerhetsspørreskjema. De juridiske aspektene (personvernerklæring, databehandlingsavtale, underdatabehandlere) finnes på Juridisk informasjon og personvern.
Hva appen er bygget på
| Lag | Hva vi bruker |
|---|---|
| Applikasjonskode | TypeScript på Node.js, en aktuell versjon med langsiktig støtte. Administrasjonssidene, endepunktene som mottar webhookene dine og arbeiderne som videreformidler dem til Shopify Flow, er en samlet kodebase. |
| Database og cache | PostgreSQL (Google Cloud SQL) og Redis (Google Cloud Memorystore) |
| Kø | Et innkommende anrop tas imot, settes i kø i Google Cloud Pub/Sub og behandles av en egen arbeidsprosess, slik at en bølge av anrop eller en forsinket respons fra Shopify aldri fører til at et anrop ikke blir levert. |
| Webhotell | Containere på Google Kubernetes Engine i Google Cloud-regionen europe-west1 (Belgia, EU). Databaser, hurtigbuffere og køer er regionale. |
| Shopify-integrasjon | Shopifys offisielle appbiblioteker, Shopify Flow-utløsere og -handlinger samt Shopifys webhooks |
| Butikkfronten din | Ingenting kjører i temaet ditt. Den valgfrie app-proxy-URL-en for nettleserforespørsler (se CORS, appens proxy-URL og nettleserforespørsler) leveres av Shopify på ditt eget domene og bekreftes med Shopifys signatur. |
Det finnes ikke PHP, WordPress, Java eller andre kjøringsmiljøer noe sted i tjenesten. Appen er oppført i Shopify App Store og har bestått Shopifys appvurdering, som omfatter Shopifys krav til sikkerhet og beskyttelse av kundedata.
Sikkerhetsmeldinger og om appene våre er berørt
Når det kommer nyheter om en sikkerhetsrisiko eller et angrep som involverer Shopify-apper, sjekker vi om dette gjelder noen av appene vi utvikler og registrerer resultatet her, slik at du kan finne svaret selv i stedet for å spørre.
| Veiledning | Når | Våre apper | Detaljer |
|---|---|---|---|
| PHP2Shell (CVE-2026-109618, CVE-2026-109619): ekstern kjøring av kode i PHP-motoren | 21. oktober 2026 | Ikke berørt. Ingen av appene våre inneholder PHP. | Uttalelse |
| Kampanje for kapring av Shopify-kassen: Skript som ble injisert gjennom butikkfrontkoden til tredjepartsapper (Hulk Product Options, Selleasy, Swym Wishlist Plus; Qikify i juli) omdirigerte kunder til falske kassesider | 10. til 20. oktober 2026 | Ikke berørt. Ingen av appene våre var involvert, og ingen av dem kan plassere et slikt skript i butikken din. | Uttalelse |
| Sikkerhetsoppdatering for Node.js (CVE-2026-111497 og ni andre CVE-er i Node.js-kjøringsmiljøet) | 21. oktober 2026 | Applied. Appene våre kjører på Node.js, så dette var noe som bekymret oss: Alle appene ble bygget på nytt med den oppdaterte versjonen (22.23.4) og har kjørt på denne i produksjonsmiljøet siden den uken. Du trenger ikke å gjøre noe. | Slik holder vi appene oppdatert |
| Sikkerhetsoppdatering for nginx (CVE-2026-15176, CVE-2026-93479, CVE-2026-97205, CVE-2026-95101, CVE-2026-97629) | 14. oktober 2026 | Ikke berørt. nginx inngår ikke i appene våre, og alle appene kjører nå bak Google Clouds administrerte lastfordeler med Google Cloud Armor. Den tidligere brukte nginx-ingressen kunne heller ikke utnyttes: ingen av de fem problemene kan nås med den aktuelle konfigurasjonen (ingen aliaser eller omskrivninger, ingen server-side includes, ingen HTTP/3, TLS-sesjonsbilletter deaktivert). | Uttalelse |
| Sikkerhetsbrudd hos sertifiseringsmyndigheten eMudhra (emSign): Nøklene til åtte mellomliggende sertifiseringsmyndigheter kan gjenopprettes; emSign ECC Root CA - G3 er ikke lenger pålitelig | 20. oktober 2026 | Ikke berørt. Ingen av våre systemer stoler på den mistrodde roten, ingen av våre sertifikater kommer fra eMudhra, og de offentlige Certificate Transparency-loggene viser ingen eMudhra-sertifikater for noen av våre domener. | Uttalelse |
Den samme tabellen for alle appene våre, sammen med de felles retningslinjene, finnes på Sikkerhet hos Code Creation Labs.
Hvordan opplysningene dine beskyttes
Under overføring. Alle forbindelser mellom nettleseren din, Shopify, systemene som utløser webhookene dine og appen, bruker TLS. Databasen, hurtigbufferen og køen har ingen offentlig adresse: de er kun tilgjengelige fra vårt private nettverk.
I hvile. Alle databaser og lagringsplasser er kryptert i hvile med nøkler som vi forvalter i Google Cloud KMS.
Kryptering på feltnivå i tillegg. De mest sensitive verdiene får et ekstra lag: butikkens Shopify-tilgangstoken, autentiseringsnøkkelen til hver webhook og alle hemmelige nøkler du lagrer for transformasjonsfunksjoner. Hver verdi krypteres individuelt med AES-256-GCM under en egen nøkkel i Cloud KMS, med automatisk nøkkelrotasjon, og dekrypteres i minnet først når det er nødvendig. Hemmeligheter skrives aldri til logger og returneres aldri av utvikler-API-et eller til Sidekick.
Hemmeligheter. Tjenestens API-påloggingsopplysninger og nøkler lagres i Google Secret Manager og hentes inn når tjenesten starter. De finnes verken i koden, i containerbildene eller i byggeprosessen.
Dataminimering. Appen ber ikke om tilgang til butikkens data ved installasjon: Det kreves ingen tillatelse for å starte en Shopify Flow-arbeidsflyt, og appen leser aldri inn produkter, bestillinger eller kunder på egen hånd. En leveranse inneholder nøyaktig den datamengden som det påkallende systemet sendte.
Hvem har tilgang til hva?
- Tilgangstokener er låst til våre servere. Vi har aktivert Shopifys IP-tillatelsesliste for Admin API: Shopify godtar kun appens tilgangstokener fra vår egen utgående adresse og avviser dem fra alle andre steder, slik at et stjålet token er ubrukelig utenfor vår infrastruktur.
- Tilgangstokener med utløpsdato. Appen bruker Shopifys offline-tilgangstokener med utløpsdato. Hvert token er gyldig i én time og fornyes automatisk, slik at et token som har blitt lekket, slutter å fungere av seg selv.
- Angitt nettverkstilgang. Appen angir i sin Shopify-konfigurasjon hvilke eksterne verter koden i butikkfronten, kassen og administrasjonsområdet kan ta kontakt med (Shopifys regler for nettverkstilgang), slik at Shopify kan oppdage forespørsler som ikke hører hjemme der.
- En brannmur i front. Forespørsler når appen via Google Clouds administrerte globale lastfordeler med Google Cloud Armor, Googles brannmur for webapplikasjoner, som blokkerer kjente angripere og sjekker hver enkelt forespørsel før den når serverne våre.
- Kun din butikk. Hver post inneholder opplysninger om hvilken butikk den tilhører, og hvert søk er begrenset til den butikken som ble autentisert. En butikk kan aldri lese eller endre en annen butikks webhooks eller leveranser, og et synkront svar er knyttet til den butikken som ba om det.
- Kun verifiserte forespørsler. Sider i Shopify-administrasjonsgrensesnittet autentiseres med Shopify-sesjonstokener. Shopify Flow-tilbakekallinger og Shopifys egne webhooks verifiseres ved hjelp av Shopifys HMAC-signatur, mens interne meldinger verifiseres ved hjelp av identiteter signert av Google, før dataene behandles.
- Dine webhooks, dine regler. Hver webhook-URL er umulig å gjette, og du velger selv hvordan innringere skal identifisere seg: et statisk token, en HMAC-signatur på innholdet, eller ingen signatur for kilder som ikke kan signere. En valgfri IP-tillatelseslister begrenser innringere ytterligere; innringerens adresse hentes fra nettverkstilkoblingen, ikke fra en header, så den kan ikke forfalskes. Dupliserte leveranser gjenkjennes og behandles én gang. Se Autentisering.
- Transformasjonsfunksjoner. JavaScript-koden du skriver for Transformasjonsfunksjoner, kjøres i en isolert sandkasse med tids- og minnebegrensninger, på en infrastruktur som er atskilt fra appens egne servere. Den får aldri tilgang til appens påloggingsopplysninger eller ditt Shopify-tilgangstoken, og utgående forespørsler kontrolleres mot private nettverksområder før tilkobling.
- Utgående forespørsler. URL-adresser som appen sender forespørsler til på dine vegne, både for Planlagt URL-avlesning og for Å kalle opp en webhook fra Shopify Flow, kontrolleres før tilkobling: loopback-, link-local-, cloud-metadata- og private nettverksadresser avvises, også ved omdirigering.
- Vårt team. Tilgang til produksjonssystemene skjer utelukkende via Google Cloud IAM med individuelle kontoer. Interne vedlikeholdsverktøy er ikke tilgjengelige via internett.
Slik holder vi appen oppdatert
- Shopifys sikkerhetskontroller for apper. Vi gjennomfører Shopifys sikkerhetskontroller for apper, den deterministiske skanningen og agentgjennomgangen, på alle appene vi utvikler, og gjentar dette ved hver utgivelse. De 37 kontrollene omfatter blant annet uautentiserte ruter, data som ikke er begrenset til en butikk, uverifiserte webhooks og app-proxyforespørsler, lagrede hemmeligheter, lekkede påloggingsopplysninger, usikker HTML og deaktiverte tilgangstokener med utløpsdato.
- Hver endring blir skannet før den kan sendes ut. Pipelinen utfører typekontroller og linting, statisk applikasjonssikkerhetstesting (SAST), påvisning av hemmelige opplysninger, skanning av sårbarheter i avhengigheter og skanning av containerbilder. Vår utgivelsesstandard er null kjente sårbarheter i avhengighetene og i bildet.
- Kjøringsmiljø og operativsystem. Containerbildet, Node.js på sin Alpine Linux-base, bygges på nytt ved hver utgivelse, slik at oppdateringer til kjøringsmiljøet og operativsystemet leveres kontinuerlig. Den administrerte Kubernetes-plattformen sørger for at de underliggende nodene alltid er oppdatert.
- Shopify-plattformen. Vi følger med på Shopifys API-versjoner og sikkerhetsmeldingene for Shopifys appbiblioteker, og implementerer oppdateringer umiddelbart. Appen kjører på en oppdatert versjon av Admin API.
- Sikkerhetsgjennomganger. Vi gjennomfører med jevne mellomrom en fullstendig intern gjennomgang av hver rute, datavei og databasespørring, sist i oktober 2026.
- Overvåking. Tilgjengeligheten overvåkes døgnet rundt og publiseres på vår statusside, og vi får varsel ved feil. Driftsloggene oppbevares i maksimalt 30 dager og inneholder aldri tokens eller hemmelige opplysninger.
Oppbevaring og sletting
- Leveringshistorikken beholdes så lenge appen er installert, slik at du kan se gjennom og spille av samtaler, og du kan slette oppføringer når som helst. Overskrifter som kan inneholde påloggingsopplysninger, blir maskert før en levering lagres.
- Når du avinstallerer appen, blir dens tilgang til butikken din umiddelbart slettet. Shopifys forespørsel om å slette/redigere butikken, som sendes 48 timer etter avinstalleringen, sletter butikkens gjenværende data, inkludert alt som er lagret i transformasjonsfunksjonene dine.
- Shopify
- Underleverandører og den fullstendige oppbevaringsplanen finnes i personvernerklæringen. En signert databehandlingsavtale kan rekvireres på workflow-webhooks.app/dpa.
Rapportere et sikkerhetsproblem
Hvis du mener at du har oppdaget en sikkerhetsrisiko, eller hvis du trenger å få utfylt et sikkerhetsspørreskjema, kan du sende en e-post til support@codecreationlabs.com. Sikkerhetsrapporter blir behandlet og besvart med høy prioritet.
