Säkerhet

Säkerhet

Kopiera sidan

Säkerhet i Workflow Webhooks för Shopify Flow: teknikstack, hosting i EU (Belgien), kryptering och isolering av webhooks, hemliga nycklar och leveranser.

Workflow Webhooks har utvecklats och drivs av Code Creation Labs. På den här sidan beskrivs vad appen består av, var den körs, hur din butiks data skyddas och hur vi ser till att allt hålls uppdaterat. Texten riktar sig till butiksägare och alla som fyller i ett säkerhetsformulär. Den juridiska delen (integritetspolicy, personuppgiftsbiträdesavtal, underleverantörer) finns på Juridisk information och dataskydd.

Vad appen bygger på

Lager Vad vi använder
Applikationskod TypeScript på Node.js, en aktuell version med långsiktigt stöd. Administrationssidorna, de slutpunkter som tar emot dina webhooks och de arbetsprocesser som vidarebefordrar dem till Shopify Flow, utgör en gemensam kodbas.
Databas och cache PostgreSQL (Google Cloud SQL) och Redis (Google Cloud Memorystore)
Kö Ett inkommande samtal tas emot, placeras i kö i Google Cloud Pub/Sub och hanteras av en separat arbetsprocess, vilket innebär att varken en plötslig ökning av samtal eller en fördröjd svarstid från Shopify leder till att något samtal går förlorat.
Webbhotell Containrar på Google Kubernetes Engine i Google Cloud-regionen europe-west1 (Belgien, Europeiska unionen). Databaser, cacher och köer är regionbundna.
Shopify-integration Shopifys officiella appbibliotek, Shopify Flow-utlösare och -åtgärder samt Shopifys webhooks
Din butiksfasad Inget körs i ditt tema. Den valfria app-proxy-URL:en för webbläsarbegäranden (se CORS, appens proxy-URL och webbläsarens anrop) tillhandahålls av Shopify på din egen domän och verifieras med Shopifys signatur.

Det finns varken PHP, WordPress, Java eller någon annan körmiljö någonstans i tjänsten. Appen finns listad i Shopify App Store och har godkänts i Shopifys appgranskning, som omfattar Shopifys krav på säkerhet och skydd av kunddata.

Säkerhetsmeddelanden och om våra appar påverkas

När en säkerhetsbrist eller en attack som rör Shopify-appar uppmärksammas i nyheterna, kontrollerar vi om den gäller någon av våra appar och dokumenterar resultatet här, så att du kan läsa svaret istället för att fråga.

Rådgivning När Våra appar Detaljer
PHP2Shell (CVE-2026-109618, CVE-2026-109619): fjärrkörning av kod i PHP-motorn 21 oktober 2026 Berörs inte. Ingen av våra appar innehåller PHP. Uttalande
Kampanj för kapning av Shopify-kassan: skript som införts via butikskoden i appar från tredjepartsleverantörer (Hulk Product Options, Selleasy, Swym Wishlist Plus; Qikify i juli) omdirigerade kunderna till falska kassasidor 10-20 oktober 2026 Ingen påverkan. Ingen av våra appar var inblandad, och ingen av dem kan placera ett sådant skript i din webbutik. Uttalande
Säkerhetsuppdatering för Node.js (CVE-2026-111497 och ytterligare nio CVE-rapporter i Node.js-körmiljön) 21 oktober 2026 Applied. Våra appar körs på Node.js, så det här berörde oss: alla appar har byggts om mot den uppdaterade versionen (22.23.4) och har körts i produktion sedan den veckan. Ni behöver inte göra något. Så här håller vi apparna uppdaterade
Säkerhetsuppdatering för nginx (CVE-2026-15176, CVE-2026-93479, CVE-2026-97205, CVE-2026-95101, CVE-2026-97629) 14 oktober 2026 Påverkas inte. nginx ingår inte i våra appar, och alla appar körs nu bakom Google Clouds hanterade lastbalanserare med Google Cloud Armor. Den tidigare använda nginx-ingressen kunde inte heller utnyttjas: ingen av de fem sårbarheterna kan nås med dess konfiguration (inga alias eller omskrivningar, inga server-side includes, inget HTTP/3, TLS-sessionstickets avstängda). Uttalande
Intrång i certifikatutfärdaren eMudhra (emSign): nycklarna till åtta mellanliggande certifikatutfärdare kan återställas; emSign ECC Root CA - G3 betraktas inte längre som pålitlig 20 oktober 2026 Ingen påverkan. Inget av våra system litar på den misstänkta roten, inget av våra certifikat kommer från eMudhra, och de offentliga loggarna för Certificate Transparency visar inga eMudhra-certifikat för någon av våra domäner. Uttalande

Samma tabell för alla våra appar, tillsammans med de gemensamma rutinerna, finns på Säkerhet hos Code Creation Labs.

Hur dina uppgifter skyddas

Under överföring. Alla anslutningar mellan din webbläsare, Shopify, de system som anropar dina webhooks och appen använder TLS. Databasen, cachen och kön har inga offentliga adresser: de är endast tillgängliga inifrån vårt privata nätverk.

I viloläge. Alla databaser och lagringsutrymmen är krypterade i viloläge med nycklar som vi hanterar i Google Cloud KMS.

Kryptering på fältnivå utöver det. De mest känsliga värdena får ett extra skyddslager: din butiks Shopify-åtkomsttoken, varje webhooks autentiseringshemlighet och varje hemlighet som du lagrar för omvandlingsfunktioner. Varje värde krypteras individuellt med AES-256-GCM med en separat nyckel i Cloud KMS, med automatisk nyckelrotation, och dekrypteras i minnet först när det behövs. Hemligheter skrivs aldrig till loggar och returneras aldrig via utvecklar-API:et eller till Sidekick.

Hemligheter. Tjänstens API-autentiseringsuppgifter och nycklar lagras i Google Secret Manager och laddas in när tjänsten startas. De finns varken i koden, i containerbilderna eller i byggpipeline.

Dataminimering. Appen begär ingen åtkomst till din butiks data vid installationen: det krävs inga behörigheter för att starta ett Shopify Flow-arbetsflöde, och appen läser aldrig in produkter, beställningar eller kunder på egen hand. En överföring innehåller exakt den data som det anropande systemet skickade.

Vem har tillgång till vad?

  • Åtkomsttoken är låsta till våra servrar. Vi har aktiverat Shopifys IP-tillåtelselista för Admin API: Shopify godkänner endast appens åtkomsttoken från vår egen utgående adress och avvisar dem från alla andra källor, vilket innebär att ett stulet token är värdelöst utanför vår infrastruktur.
  • Åtkomsttoken som upphör att gälla. Appen använder Shopifys offline-åtkomsttoken som upphör att gälla. Varje token är giltigt i en timme och förnyas automatiskt, vilket innebär att ett token som läckt ut slutar fungera av sig själv.
  • Angiven nätverksåtkomst. Appen anger i sin Shopify-konfiguration vilka externa värdar som dess kod i din butik, kassan och adminpanelen kan kontakta (Shopifys regler för nätverksåtkomst), så att Shopify kan upptäcka en förfrågan som inte hör hemma där.
  • En brandvägg i främre ledet. Förfrågningarna når appen via Google Clouds hanterade globala lastbalanserare med Google Cloud Armor, Googles brandvägg för webbapplikationer, som blockerar kända angripare och granskar varje förfrågan innan den når våra servrar.
  • Endast din butik. Varje post innehåller uppgifter om vilken butik den tillhör, och varje förfrågan är begränsad till den butik som har autentiserats. En butik kan aldrig läsa eller ändra en annan butiks webhooks eller leveranser, och ett synkront svar är kopplat till den butik som begärde det.
  • Endast verifierade förfrågningar. Sidor i Shopify-adminverktyget autentiseras med Shopify-sessionstoken. Shopify Flow-callbacks och Shopifys egna webhooks verifieras med Shopifys HMAC-signatur, och interna meddelanden med Google-signerade identiteter, innan någon data hanteras.
  • Dina webhooks, dina regler. Varje webhook-URL är omöjlig att gissa, och du väljer själv hur anropare ska identifiera sig: ett statiskt token, en HMAC-signatur på meddelandetexten eller ingen signatur alls för källor som inte kan signera. Ett valfritt IP-tillåtelselistor begränsar anropare ytterligare; anroparens adress hämtas från nätverksanslutningen, inte från en header, så den kan inte förfalskas. Dubbla leveranser identifieras och behandlas endast en gång. Se Autentisering.
  • Transformationsfunktioner. JavaScript-kod som du skriver för Transformationsfunktioner körs i en isolerad sandlåda med tids- och minnesbegränsningar, på en infrastruktur som är skild från appens egna servrar. Koden får aldrig tillgång till appens inloggningsuppgifter eller ditt Shopify-åtkomsttoken, och dess utgående förfrågningar kontrolleras mot privata nätverksintervall innan anslutningen upprättas.
  • Utgående förfrågningar. URL:er som appen anropar å dina vägnar, för Schemalagd URL-avfrågning och för Anropa en webhook från Shopify Flow, kontrolleras innan anslutningen upprättas: loopback-, link-local-, molnmetadata- och privata nätverksadresser avvisas, även om de nås via en omdirigering.
  • Vårt team. Tillgång till produktionssystemen sker endast via Google Cloud IAM med individuella konton. Interna underhållsverktyg är inte exponerade mot internet.

Hur vi håller appen uppdaterad

  • Shopifys säkerhetskontroller för appar. Vi genomför Shopifys säkerhetskontroller för appar, den deterministiska skanningen och agentgranskningen, på varje app vi utvecklar och upprepar detta vid varje release. De 37 kontrollerna omfattar bland annat icke-autentiserade rutter, data som inte är begränsade till en butik, overifierade webhooks och app-proxyförfrågningar, lagrade hemligheter, läckta inloggningsuppgifter, osäker HTML och inaktiverade åtkomsttoken med utgångsdatum.
  • Varje ändring granskas innan den kan släppas. Pipelinen utför typkontroller och linting, statisk säkerhetstestning av applikationer (SAST), upptäckt av hemliga uppgifter, skanning efter sårbarheter i beroenden samt skanning av containerbilder. Vårt krav för release är att det inte får finnas några kända sårbarheter i beroenden eller i bilden.
  • Körmiljö och operativsystem. Containerbilden, Node.js på sin Alpine Linux-bas, byggs om vid varje release, vilket innebär att uppdateringar för körmiljön och operativsystemet levereras kontinuerligt. Den hanterade Kubernetes-plattformen ser till att de underliggande noderna hålls uppdaterade.
  • Shopify-plattformen. Vi följer Shopifys API-versioner och säkerhetsmeddelandena för Shopifys appbibliotek och installerar uppdateringar omedelbart. Appen körs på en aktuell version av Admin API.
  • Säkerhetsgranskningar. Vi genomför regelbundet en fullständig intern granskning av varje rutt, dataväg och databasfråga, senast i oktober 2026.
  • Övervakning. Tillgängligheten övervakas dygnet runt och publiceras på vår statussida, och vi får varningar vid eventuella fel. Driftsloggar sparas i högst 30 dagar och innehåller aldrig token eller hemliga uppgifter.

Lagring och radering

  • Leveranshistoriken sparas så länge appen är installerad, så att du kan granska och spela upp samtal, och du kan radera poster när som helst. Rubriker som kan innehålla inloggningsuppgifter maskeras innan en leverans sparas.
  • När du avinstallerar appen raderas dess åtkomst till din butik omedelbart. Shopifys begäran om radering av butiken, som sker 48 timmar efter avinstallationen, raderar butikens återstående data, inklusive allt som dina transformeringsfunktioner har lagrat.
  • Shopify
  • Underleverantörer och den fullständiga lagringsplanen finns i integritetspolicyn. Ett undertecknat avtal om databehandling kan begäras via workflow-webhooks.app/dpa.

Anmäla ett säkerhetsproblem

Om du tror att du har upptäckt en sårbarhet eller behöver fylla i ett säkerhetsformulär, skicka ett e-postmeddelande till support@codecreationlabs.com. Säkerhetsrapporter behandlas och besvaras med hög prioritet.