Säkerhet
Säkerhet i Workflow Transactional Email för Shopify Flow: teknik, drift i EU (Belgien), kryptering av e-postuppgifter och data samt uppdateringar.
Workflow Transactional Email utvecklas 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 håller allt uppdaterat. Informationen riktar sig till butiksägare och alla som fyller i ett säkerhetsformulär. Vad appen lagrar och hur länge finns på Data, integritet och säkerhet; de juridiska aspekterna (integritetspolicy, databehandlingsavtal, 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, layoutredigeraren och de tjänster som kör dina Shopify Flow-steg bygger på en och samma kodbas. |
| Databas och cache | PostgreSQL (Google Cloud SQL) och Redis (Google Cloud Memorystore) |
| Webbhotell | Containrar på Google Kubernetes Engine i Google Cloud-regionen europe-west1 (Belgien, Europeiska unionen). Databaser, cacher, fillagring och applikationsloggar finns lokalt i regionen. |
| Shopify-integration | Shopifys officiella appbibliotek, Shopify Flow-åtgärder, Admin GraphQL API för de valfria behörigheterna samt Shopifys webhooks |
| E-postleverans | Den e-postkonto du ansluter: din egen SMTP-server, Microsoft 365 eller Google Workspace. Appens egna aviseringar via e-post till dig skickas via Amazon SES i Frankfurt. |
| Din butiksfasad | Inget fungerar i ditt tema eller i din kassa. |
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ördes 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 butik. | 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 Certificate Transparency-loggarna 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 rutiner som de har gemensamt, finns på Säkerhet hos Code Creation Labs.
Hur dina uppgifter skyddas
Under överföring. Alla anslutningar mellan din webbläsare, Shopify, din e-postleverantör och appen använder TLS. Databasen och cachen har ingen offentlig adress: de är endast tillgängliga inifrån vårt privata nätverk.
I viloläge. Alla databaser och fillagringar är krypterade i viloläge med nycklar som vi hanterar i Google Cloud KMS.
Dessutom tillkommer kryptering på fältnivå. Allt som kan användas för att skicka data får ett extra skydd: SMTP-användarnamn och lösenord, OAuth-tokens för Microsoft 365 och Google, de hemliga uppgifter du lagrar, din butiks Shopify-åtkomsttoken samt adresserna på din avregistreringslista. Varje värde krypteras individuellt med AES-256-GCM med en separat nyckel i Cloud KMS, med automatisk nyckelrotation, och dekrypteras i minnet endast under den tid som en åtgärd körs. Varje dekryptering av ett skyddat värde registreras i en intern åtkomstlogg. Hemliga värden redigeras bort från åtgärdshistoriken innan den skrivs 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 installeras utan åtkomst till din butiks data. Kunddata skickas endast via e-post eftersom du vidarebefordrar den från Shopify Flow. De fyra valfria behörigheterna (att läsa en metafields fil för en beställning eller kund, att skapa en unik rabattkod) begärs på plats, beviljas via Shopifys egen dialogruta och kan återkallas när som helst. Se Behörigheter: vad appen kan läsa från din butik.
Ingen AI-träning. Dina e-postmeddelanden, mottagare, bilagor och Shopify-kunddata används aldrig för att träna AI-modeller, varken av oss eller av någon annan. Den valfria AI-layoutassistenten körs endast med din egen API-nyckel och skickar endast den layout som du redigerar. Mer information finns på Data, integritet och säkerhet.
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ågningar 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 sökfråga är begränsad till den butik som har autentiserats. En butik kan aldrig läsa eller ändra en annan butiks layouter, avsändare, hemligheter eller historik.
- Endast verifierade förfrågningar. Sidor i Shopify-adminverktyget autentiseras med Shopify-sessionstoken. Shopify Flow-steg och Shopifys egna webhooks verifieras med Shopifys HMAC-signatur innan någon data bearbetas, och ett Shopify Flow-steg som levereras två gånger utförs endast en gång.
- Renderat innehåll. Layouterna renderas på våra servrar och resultatet rensas innan det skickas: skript, händelsehanterare, javascript:URL:er, iframes och formulärelement tas bort, så att ett värde som skickas in från Shopify Flow inte kan omvandlas till aktivt innehåll i mottagarens inkorg.
- Utgående förfrågningar. De URL:er som appen ansluter till å dina vägnar - för åtgärden ”HTTP Request”, för bilagor som hämtas från en URL och för filer som refereras till via ett metafält - kontrolleras innan anslutningen upprättas: loopback-, link-local-, molnmetadata- och privata nätverksadresser avvisas, även via omdirigering. Omdirigeringar begränsas och svarsstorleken begränsas.
- Vårt team. Tillgång till produktionssystemen sker enbart 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 håller koll på 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 fel. Driftsloggarna lagras i samma EU-region, sparas i högst 30 dagar och innehåller aldrig inloggningsuppgifter eller hemlig information.
Lagring och radering
- Åtgärdshistoriken, som innehåller uppgifter om vad som har skickats och därmed utgör kunduppgifter, raderas automatiskt efter 30 dagar.
- När du avinstallerar raderas allt - layouter, avsändare, hemligheter, historik, listan över avregistrerade användare och uppladdade filer - omedelbart och oåterkalleligt.
- Shopifys obligatoriska begäranden om integritetsskydd (customers/data_request, customers/redact och shop/redact) hanteras automatiskt inom de tidsramar som Shopify fastställer, inklusive när en kund läggs till i listan över avregistrerade kunder.
- En fullständig översikt över vad som lagras finns på Data, integritet och säkerhet. Underleverantörer och lagringstider anges i integritetspolicyn. Ett undertecknat avtal om databehandling kan begäras via workflow-transactional-email.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.
