Beveiliging
Hoe Workflow Webhooks voor Shopify Flow uw webhooks en geheimen versleutelt en isoleert, waar de app draait (EU, België) en hoe updates verlopen.
Workflow Webhooks wordt ontwikkeld en beheerd door Code Creation Labs. Op deze pagina wordt uitgelegd waaruit de app bestaat, waar deze draait, hoe de gegevens van uw winkel worden beschermd en hoe wij alles up-to-date houden. Deze pagina is bedoeld voor winkeleigenaren en voor iedereen die een beveiligingsvragenlijst invult. De juridische aspecten (privacybeleid, gegevensverwerkingsovereenkomst, subverwerkers) vindt u op Juridische informatie en gegevensbescherming.
Waarop de app is gebaseerd
| Laag | Wat wij gebruiken |
|---|---|
| Toepassingscode | TypeScript op Node.js, een huidige release met langdurige support. De beheerpagina’s, de eindpunten die uw webhooks ontvangen en de workers die deze doorgeven aan Shopify Flow, vormen één codebasis. |
| Database en cache | PostgreSQL (Google Cloud SQL) en Redis (Google Cloud Memorystore) |
| Wachtrij | Een inkomend gesprek wordt aangenomen, in de wachtrij van Google Cloud Pub/Sub geplaatst en door een afzonderlijke worker verwerkt, zodat er bij een piek in het aantal gesprekken of een trage reactie van Shopify nooit een bericht verloren gaat. |
| Hosting | Containers op Google Kubernetes Engine in de Google Cloud-regio europe-west1 (België, Europese Unie). Databases, caches en wachtrijen bevinden zich binnen deze regio. |
| Shopify-integratie | De officiële app-bibliotheken van Shopify, de triggers en acties van Shopify Flow en de webhooks van Shopify |
| Uw webshop | Er wordt niets in uw thema uitgevoerd. De optionele app-proxy-URL voor browserverzoeken (zie CORS, de URL van de app-proxy en browserverzoeken) wordt door Shopify op uw eigen domein aangeboden en geverifieerd met de handtekening van Shopify. |
Er wordt nergens in de dienst gebruikgemaakt van PHP, WordPress, Java of andere runtime-omgevingen. De app staat vermeld in de Shopify App Store en heeft de app-beoordeling van Shopify doorstaan, waarbij wordt getoetst of de app voldoet aan de vereisten van Shopify op het gebied van beveiliging en de bescherming van klantgegevens.
Hoe uw gegevens worden beschermd
Tijdens de overdracht. Elke verbinding tussen uw browser, Shopify, de systemen die uw webhooks aanroepen en de app maakt gebruik van TLS. De database, de cache en de wachtrij hebben geen openbaar adres: zij zijn uitsluitend bereikbaar vanuit ons eigen netwerk.
In rust. Alle databases en opslag worden in rust versleuteld met sleutels die wij beheren in Google Cloud KMS.
Daarnaast wordt er versleuteling op veldniveau toegepast. De meest gevoelige waarden krijgen een tweede beveiligingslaag: het Shopify-toegangstoken van uw winkel, het authenticatiesecreet van elke webhook en elk geheim dat u opslaat voor transformatiefuncties. Elke waarde wordt afzonderlijk versleuteld met AES-256-GCM onder een aparte sleutel in Cloud KMS, met automatische sleutelrotatie, en wordt pas in het geheugen ontsleuteld op het moment dat dit nodig is. Geheime gegevens worden nooit naar logbestanden geschreven en worden nooit teruggestuurd via de Developer API of naar Sidekick.
Geheimen. De API-inloggegevens en -sleutels van de dienst zelf worden bewaard in Google Secret Manager en worden geladen wanneer de dienst wordt gestart. Ze staan niet in de code, niet in de containerimages en niet in de build-pijplijn.
Gegevensminimalisatie. De app vraagt bij de installatie geen toegang tot de gegevens van uw winkel: voor het starten van een Shopify Flow-workflow is geen toestemming nodig, en de app leest nooit zelfstandig gegevens over producten, bestellingen of klanten. Een verzending bevat precies de gegevens die het aanroepende systeem heeft verzonden.
Wie heeft toegang tot wat?
- Uw winkel uitsluitend. Elk record bevat de winkel waartoe het behoort, en elke query is beperkt tot de winkel waarmee de authenticatie is uitgevoerd. De ene winkel kan nooit de webhooks of leveringen van een andere winkel lezen of wijzigen, en een synchroon antwoord is gekoppeld aan de winkel die erom heeft gevraagd.
- Uitsluitend geverifieerde verzoeken. Pagina’s binnen de Shopify-beheerdersomgeving worden geauthenticeerd met Shopify-sessietokens. Shopify Flow-callbacks en de eigen webhooks van Shopify worden geverifieerd aan de hand van de HMAC-handtekening van Shopify, en interne berichten aan de hand van door Google ondertekende identiteiten, voordat er gegevens worden verwerkt.
- Uw webhooks, uw regels. Elke webhook-URL is onvoorspelbaar en u bepaalt zelf hoe aanroepers hun identiteit moeten aantonen: via een statisch token, een HMAC-handtekening over de body, of geen verificatie voor bronnen die niet kunnen ondertekenen. Een optionele IP-toegangslijsten beperkt de aanvragers nog verder; het adres van de aanvrager wordt ontleend aan de netwerkverbinding, niet aan een header, zodat het niet kan worden vervalst. Dubbele verzendingen worden herkend en slechts één keer verwerkt. Zie Authenticatie.
- Transformatiefuncties. JavaScript dat u schrijft voor Transformatiefuncties, wordt uitgevoerd in een geïsoleerde sandbox met een tijds- en geheugenlimiet, op een infrastructuur die losstaat van de eigen servers van de app. Het krijgt nooit inzage in de inloggegevens van de app of uw Shopify-toegangstoken, en de uitgaande verzoeken worden gecontroleerd aan de hand van privé-netwerkbereiken voordat er verbinding wordt gemaakt.
- Uitgaande verzoeken. URL’s die de app namens u oproept, voor Geplande URL-controle en voor Een webhook aanroepen vanuit Shopify Flow, worden gecontroleerd voordat er verbinding wordt gemaakt: loopback-, link-local-, cloudmetadata- en privé-netwerkadressen worden geweigerd, ook via een omleiding.
- Ons team. Toegang tot de productiesystemen is uitsluitend mogelijk via Google Cloud IAM met individuele accounts. Interne onderhoudstools zijn niet toegankelijk via het internet.
Hoe wij de app up-to-date houden
- Elke wijziging wordt gescand voordat deze kan worden uitgebracht. De pijplijn voert typecontroles en linting uit, evenals statische applicatiebeveiligingstests (SAST), detectie van vertrouwelijke gegevens, het scannen op kwetsbaarheden in afhankelijkheden en het scannen van containerimages. Onze release-norm is dat er geen bekende kwetsbaarheden mogen voorkomen in de afhankelijkheden en in de image.
- Runtime en besturingssysteem. De containerimage, Node.js op basis van Alpine Linux, wordt bij elke release opnieuw gebouwd, waardoor er voortdurend patches voor de runtime en het besturingssysteem worden geleverd. Het beheerde Kubernetes-platform zorgt ervoor dat de onderliggende knooppunten up-to-date blijven.
- Het Shopify-platform. Wij volgen de API-versies van Shopify en de beveiligingsadviezen voor de app-bibliotheken van Shopify op de voet en voeren updates onmiddellijk door. De app draait op een actuele versie van de Admin API.
- Beveiligingscontroles. Wij voeren met regelmatige tussenpozen een volledige interne controle uit van elke route, elk gegevenspad en elke databasequery; de meest recente controle vond plaats in oktober 2026.
- Monitoring. De beschikbaarheid wordt 24 uur per dag gemonitord en gepubliceerd op onze statuspagina; bij fouten ontvangen wij een melding. Operationele logbestanden worden maximaal 30 dagen bewaard en bevatten nooit tokens of geheime gegevens.
Bewaring en verwijdering
- De verzendgeschiedenis blijft bewaard zolang de app is geïnstalleerd, zodat u gesprekken kunt bekijken en opnieuw kunt afspelen; u kunt de vermeldingen te allen tijde verwijderen. Kopteksten die inloggegevens zouden kunnen bevatten, worden gemaskeerd voordat een verzending wordt opgeslagen.
- Wanneer u de app verwijdert, wordt de toegang tot uw winkel onmiddellijk beëindigd. Het verzoek tot verwijdering of redigering van Shopify, dat 48 uur na het verwijderen wordt ingediend, wist de resterende gegevens van de winkel, inclusief alles wat uw transformatiefuncties hebben opgeslagen.
- Shopify
- De subverwerkers en het volledige bewaarschema zijn te vinden in het privacybeleid. Een ondertekende gegevensverwerkingsovereenkomst kunt u opvragen via workflow-webhooks.app/dpa.
Een beveiligingsprobleem melden
Indien u denkt een kwetsbaarheid te hebben ontdekt, of indien u een beveiligingsvragenlijst wilt laten invullen, kunt u een e-mail sturen naar support@codecreationlabs.com. Beveiligingsrapporten worden met voorrang behandeld en beantwoord.
