Segurança
Como o Workflow Webhooks protege os dados da sua loja: alojamento na UE, encriptação de webhooks e segredos, e filas fiáveis para o Shopify Flow.
O Workflow Webhooks é desenvolvido e gerido pela Code Creation Labs. Esta página explica em que consiste a aplicação, onde é executada, como são protegidos os dados da sua loja e como mantemos tudo atualizado. Destina-se aos proprietários de lojas e a qualquer pessoa que preencha um questionário de segurança. A parte jurídica (política de privacidade, acordo de tratamento de dados, subcontratantes) encontra-se em Informações legais e proteção de dados.
Em que se baseia a aplicação
| Camada | O que utilizamos |
|---|---|
| Código da candidatura | TypeScript no Node.js, uma versão atual com suporte a longo prazo. As páginas de administração, os endpoints que recebem os seus webhooks e os workers que os encaminham para o Shopify Flow fazem parte de uma única base de código. |
| Base de dados e cache | PostgreSQL (Google Cloud SQL) e Redis (Google Cloud Memorystore) |
| Fila | Uma chamada recebida é aceite, colocada em fila no Google Cloud Pub/Sub e processada por um trabalhador independente, pelo que nem um pico de chamadas nem uma resposta lenta por parte dShopify fazem com que se perca qualquer entrega. |
| Alojamento | Contentores no Google Kubernetes Engine na região europe-west1 (Bélgica, União Europeia) do Google Cloud. As bases de dados, as caches e as filas encontram-se na própria região. |
| Integração com o Shopify | As bibliotecas de aplicações oficiais da Shopify, os gatilhos e ações do Shopify Flow e os webhooks da Shopify |
| A sua loja virtual | Nada é executado no seu tema. O URL opcional do proxy da aplicação para chamadas do navegador (consulte CORS, o URL do proxy da aplicação e as chamadas do navegador) é fornecido pela Shopify no seu próprio domínio e verificado com a assinatura da Shopify. |
Não existe PHP, WordPress, Java nem qualquer outro ambiente de execução em nenhuma parte do serviço. A aplicação está listada na Loja da Shopify e foi aprovada na avaliação de aplicações da Shopify, que abrange os requisitos de segurança da Shopify e de proteção dos dados dos clientes.
Como os seus dados são protegidos
Em trânsito. Todas as ligações entre o seu navegador, a Shopify, os sistemas que acedem aos seus webhooks e a aplicação utilizam o protocolo TLS. A base de dados, a cache e a fila não têm endereço público: só são acessíveis a partir do interior da nossa rede privada.
Em repouso. Todas as bases de dados e os meios de armazenamento são encriptados em repouso com chaves que gerimos no Google Cloud KMS.
Encriptação ao nível do campo, além disso. Os valores mais sensíveis recebem uma segunda camada de proteção: o token de acesso da sua loja ao Shopify, o segredo de autenticação de cada webhook e todos os segredos que armazena para as funções de transformação. Cada valor é encriptado individualmente com AES-256-GCM utilizando uma chave separada no Cloud KMS, com rotação automática de chaves, e desencriptado na memória apenas no momento em que é necessário. Os segredos nunca são registados em registos de sistema e nunca são devolvidos pela API do Desenvolvedor nem ao Sidekick.
Segredos. As credenciais e chaves da API do próprio serviço estão armazenadas no Google Secret Manager e são carregadas quando o serviço é iniciado. Não se encontram no código, nem nas imagens dos contentores, nem no pipeline de compilação.
Minimização de dados. A aplicação não solicita acesso aos dados da sua loja aquando da instalação: o início de um fluxo de trabalho do Shopify Flow não requer qualquer autorização, e a aplicação nunca acede, por iniciativa própria, a produtos, pedidos ou clientes. Uma transmissão contém exatamente os dados que o sistema de origem enviou.
Quem pode aceder a quê
- Apenas a sua loja. Cada registo contém a loja a que pertence e cada consulta está limitada à loja que foi autenticada. Uma loja nunca pode ler nem alterar os webhooks ou as entregas de outra loja, e uma resposta síncrona é associada à loja que a solicitou.
- Apenas pedidos verificados. As páginas no painel de administração do Shopify são autenticadas através de tokens de sessão do Shopify. Os callbacks do Shopify Flow e os webhooks próprios do Shopify são verificados através da assinatura HMAC do Shopify, e as mensagens internas através de identidades assinadas pelo Google, antes de se aceder a quaisquer dados.
- Os seus webhooks, as suas regras. Cada URL de webhook é impossível de adivinhar, e é o senhor que escolhe como os remetentes comprovam a sua identidade: um token estático, uma assinatura HMAC sobre o corpo da mensagem ou nenhuma, no caso de fontes que não possam assinar. Uma opção Listas de endereços IP autorizados restringe ainda mais os remetentes; o endereço do remetente é obtido a partir da ligação de rede, e não de um cabeçalho, pelo que não pode ser falsificado. As entregas duplicadas são reconhecidas e processadas uma única vez. Consulte Autenticação.
- Funções de transformação. O código JavaScript que escrever para Funções de transformação é executado numa sandbox isolada, com limites de tempo e de memória, numa infraestrutura separada dos servidores da própria aplicação. Nunca tem acesso às credenciais da aplicação nem ao seu token de acesso da Shopify, e as suas solicitações de saída são verificadas em relação a intervalos de rede privada antes de estabelecerem ligação.
- Pedidos de saída. Os URLs a que a aplicação acede em seu nome, para Verificação programada de URLs e para Chamar um webhook a partir do Shopify Flow, são verificados antes da ligação: são recusados endereços de loopback, link-local, metadados na nuvem e de redes privadas, mesmo que seja através de um redirecionamento.
- A nossa equipa. O acesso aos sistemas de produção é feito exclusivamente através do Google Cloud IAM, com contas individuais. As ferramentas de manutenção internas não estão expostas à Internet.
Como mantemos a aplicação atualizada
- Todas as alterações são analisadas antes de poderem ser lançadas. O pipeline executa verificações de tipo e linting, testes estáticos de segurança de aplicações (SAST), deteção de informações confidenciais, análise de vulnerabilidades nas dependências e análise de imagens de contentores. O nosso critério de lançamento é a ausência total de vulnerabilidades conhecidas nas dependências e na imagem.
- Ambiente de execução e sistema operativo. A imagem do contentor, o Node.js na sua base Alpine Linux, é recompilada em cada lançamento, pelo que as atualizações do ambiente de execução e do sistema operativo são disponibilizadas de forma contínua. A plataforma Kubernetes gerida mantém os nós subjacentes atualizados.
- Plataforma Shopify. Acompanhamos as versões da API da Shopify e os avisos de segurança relativos às bibliotecas de aplicações da Shopify, aplicando as atualizações de forma imediata. A aplicação funciona com uma versão atual da API de administração.
- Avaliações de segurança. Realizamos uma avaliação interna completa de todas as rotas, percursos de dados e consultas à base de dados a intervalos regulares, tendo a mais recente ocorrido em outubro de 2026.
- Monitorização. A disponibilidade é monitorizada 24 horas por dia e publicada na nossa página de estado, e os erros alertam-nos. Os registos operacionais são conservados durante um período máximo de 30 dias e nunca contêm tokens nem segredos.
Conservação e eliminação
- O histórico de entregas permanece enquanto a aplicação estiver instalada, para que possa consultar e reproduzir chamadas, podendo eliminar registos a qualquer momento. Os cabeçalhos que possam conter credenciais são ocultados antes de uma entrega ser armazenada.
- Quando desinstalar a aplicação, o acesso desta à sua loja é eliminado imediatamente. O pedido de remoção da loja da Shopify, que ocorre 48 horas após a desinstalação, apaga os dados restantes da loja, incluindo tudo o que as suas funções de transformação tenham armazenado.
- Shopify
- Os subcontratantes e o calendário completo de retenção de dados encontram-se na privacypolicy. Pode solicitar-se um acordo de tratamento de dados assinado através do endereço [workflow-webhooks.app/dpaxml-ph-0004.
Comunicar um problema de segurança
Caso considere que identificou uma vulnerabilidade ou necessite de preencher um questionário de segurança, envie um e-mail para support@codecreationlabs.com. Os relatórios de segurança são analisados e respondidos com prioridade.
