GUIDE · SECURITY

What Shopify secures for you, and what it leaves to you

For Shopify merchants on Basic, Shopify or Advanced who assume the platform covers security. Shopify covers the platform, checkout and card data, which reduces scope. It does not cover staff accounts, apps, theme scripts, DNS, exports or brand email. This page splits the responsibility, shows where the gaps sit and gives a 30-minute checklist. A Shopify security audit starts at $490.

Updated 11 November 2026 7 min read

The short answer. Shopify owns the platform: hosting, network, checkout, TLS, DDoS protection and the card-data environment behind PCI. You own what you put on top: staff accounts, app permissions, theme and tag JavaScript, domains and DNS, data exports, email authentication and customer communication. Most incidents start in the second list.

Who owns what, line by line

A shared row is two jobs. If neither side does it, it does not happen.

AreaOwnerWhat it means in practice
Infrastructure and hostingShopifyData centers, network and delivery. No server or log access.
Checkout and PCI scopeSharedShopify keeps checkout PCI DSS compliant. You complete the required self-assessment.
Card dataShopifyFull card numbers stay in Shopify's payment environment. Do not collect them.
TLS certificateShopifyShopify handles TLS for myshopify.com and custom domains. You keep assets on HTTPS.
DDoSShopifyAbsorbed at Shopify's edge. You have nothing to tune.
Platform patchingShopifyShopify patches the platform, not your theme, apps or custom code.
Theme codeMerchantLiquid, CSS and JavaScript are yours to change and break.
Third-party appsSharedShopify reviews apps before listing. You pick the app, approve scopes, remove it.
Staff accounts and 2FAMerchantEvery login and permission set is your process; Shopify supplies controls.
Custom domains and DNSSharedShopify serves the domain. Your registrar and DNS decide if it can be taken over.
Email authenticationMerchantSPF, DKIM and DMARC live in your DNS, not in Shopify.
Analytics and pixel scriptsMerchantEvery tag runs in customer browsers. You own the inventory.
Customer data exportsMerchantShopify provides CSV exports; scheduling, encrypting and deleting them is yours.
Fraud and chargebacksSharedShopify flags suspicious orders; payment providers run disputes. You carry the loss.
Incident notificationSharedShopify posts platform incidents. Customer notification is yours.

Plan features change; confirm questionnaire answers in your admin and current docs.

Staff accounts are the front door

Anyone with admin access can change prices, read customer data and install apps. Shopify splits permissions by section, so give each role only what it uses.

  • One account per person. Shared logins make the log useless.
  • Contractors get theme access, not settings. Support gets orders, not apps.
  • Remove access on the last day and review quarterly.

Two-step authentication matters most. Shopify supports it and lets the owner require it, so turn it on, prefer an authenticator app, and check old accounts. See the staff account guide.

The owner's email is the reset path: put two-factor on that mailbox.

Apps are a permission decision

A Shopify app runs on the vendor's servers, holds an API token and can read or write whatever its scopes allow. Installing one is a decision about your data.

Read scopes first: a reporting app rarely needs write access, and read_orders is not write_orders. A custom app puts the credentials on you. Scopes are listed in Shopify's developer documentation.

Keep a register of apps, owners, scopes and use. Uninstall what has no owner, ask how long data is kept, and rotate credentials after staff changes. App launch requirements are a floor, not an audit.

Theme JavaScript is the widest merchant-side opening

Your theme is code you control. Shopify renders it, but nobody reviews the snippet you pasted or the tag container that loads eleven scripts. A compromised app or tag is a common merchant-side risk.

A storefront script can read form fields, rewrite a button and send data anywhere. Shopify constrains checkout pixels more tightly; that helps at payment, not on cart or account pages.

Inventory every script: theme files, app embeds, pixels and tag containers. Remove duplicates and use integrity hashes where supported. This is OWASP Top 10 territory, code you did not write, trusted without review. A strict content security policy is hard here, so use report-only.

Domains, DNS and records that outlive projects

Your registrar is the highest-value credential you own: whoever controls it can point the store anywhere. Turn on two-factor, a transfer lock and auto-renew, and keep recovery email on your own domain.

Domain takeover starts with an unverified record nobody owns: a subdomain pointed at a canceled tool, a stale CNAME, a test host that released the name. Shopify verifies ownership before connecting a custom domain in some cases, which closes its own path but not records aimed elsewhere. Shopify's domain docs cover connection, not the rest of your zone.

Shopify Markets can serve markets from different domains or folders. Each added domain is another certificate, DNS set and stale connection; remove it when the market is paused.

Exports are not backups

Shopify keeps its own copy of your data, but there is no point-in-time backup you can restore into a staging store. Recovery is the export you took before the mistake.

Schedule exports of products, orders and customers, download the theme before edits, and note which apps hold data. Encrypt and delete the files on a schedule: a customer CSV is personal data with worse controls.

Test one restore a quarter with a product CSV in a development store. An export you never opened is not a recovery plan.

Email authentication is your domain, not Shopify's

Attackers do not need to break in to phish your customers. They spoof your domain with a fake order message. DMARC makes that harder, and it is set in DNS.

Publish SPF for every sender, DKIM for each, and DMARC starting at p=none with reporting, then quarantine, then reject once reports are clean. If you use a custom sender, test an order after each change.

What you cannot do on Shopify

A review starts from what the platform lets you change, which on Shopify is less than on a self-hosted store.

  • No WAF of your own inside the request path. A proxy sees only traffic you route through it, not Shopify's checkout, and is a delivery tool rather than a security layer.
  • No server access, logs or file integrity monitoring. There is no shell or error log. Theme Liquid, app config and DNS are your levers.
  • No fine-grained app permissions. OAuth scopes are broad and staff permissions section-based, so a support user with customer access sees every customer.
  • No penetration test of Shopify itself. The platform is not yours to test; report issues through its bug bounty. Test your theme, custom app and configuration.
  • Limited control of response headers. Storefront headers are set by Shopify. Some plan levels expose more options; a theme edit is not one. Check your plan first.

A 30-minute checklist, ordered by risk

Run these in order. The first three remove access; the rest reduce the chance you miss a change.

  1. Require two-step authentication for every staff account. Five minutes; it closes the most common path to orders.
  2. Cut each staff account to the sections its role uses and remove anyone who has left. Five minutes.
  3. List each app, its scopes and owner under Settings, then Apps. Uninstall what nobody can explain. Eight minutes.
  4. Search the theme for scripts and third-party domains, including app embeds and pixels. Five minutes.
  5. At your registrar, turn on two-factor, transfer lock and auto-renew, then delete unexplained DNS records. Four minutes.
  6. Download the theme and schedule a monthly export of products, orders and customers. Two minutes.
  7. Check your DMARC record. If there is none, publish one at p=none with a reporting address. One minute.
  8. Write down who contacts customers if the store is compromised. One minute.

These are checks, not fixes. If a step turns up something you do not recognize, stop.

What we check, and what we do not

A Keelpost Shopify review is a configuration review, not a platform test. We check staff accounts and 2FA, app scopes, tags, DNS, exports, and SPF, DKIM and DMARC. Audits are from $490, one-off and fixed scope.

Shopify care starts with Basic at $129 a month; Care at $249 adds scanning and hardening, and Store Care at $449 adds checkout monitoring. Support runs 09:00–18:00 GMT+8, Monday to Friday; we are not a 24/7 SOC.

We do not restore deleted orders, recover app data, or run 3am response. The WooCommerce security checklist covers WordPress; what a new Shopify build includes covers launch.

FAQ

Questions buyers ask before they email

Is Shopify PCI compliant, and does that make my store compliant?
Shopify maintains PCI DSS compliance for its platform and checkout, removing most card-data handling from your scope. Your store is not automatically compliant: you still complete the self-assessment your setup requires and control every script and app that can reach customer data.
Does Shopify back up my store?
Shopify keeps platform copies, but there is no merchant-facing restore that rolls the live store back or into a staging copy. You can export products, orders and customers as CSV and download theme files. Treat those exports as your recovery path and test one import.
Can I put Cloudflare or another WAF in front of Shopify?
A proxy in front of the storefront covers only traffic routed through it, not Shopify's checkout. Misconfiguration breaks checkout, apps and webhooks. Keep it out of the checkout path and do not count it as a WAF over the store.
Do I need a penetration test for a Shopify store?
Not of Shopify. The platform is not yours to test. A configuration review covers accounts, apps, scripts, DNS, exports and email authentication, the work that changes exposure. A custom app you host can be tested separately. Our pentest vs vulnerability scan guide explains the difference.

NEXT STEP

Find out what is actually yours to fix.

Send the store URL and plan. We will reply within one business day with what a review covers and what it does not.