Shopify handles the hosting, but your store's security is still your responsibility. Here's every layer you need to protect your customers and your revenue.
Anay Pandya
1,398 words
Anay Pandya
Founder of ZeriFlow · 10 years fullstack engineering · About the author
Key Takeaways
Shopify security starts with understanding what the platform manages for you — and what it leaves entirely in your hands. Shopify handles PCI DSS compliance for payments, automatic SSL provisioning, and DDoS mitigation at the infrastructure level. Everything else — your theme code, installed apps, admin access, and transactional email — is yours to secure.
<div class="zf-stat-callout" style="background:#0d1117;border:1px solid rgba(16,185,129,0.25);border-left:3px solid #10b981;border-radius:4px;padding:16px 20px;margin:24px 0"> <p style="margin:0 0 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.15em;color:#10b981;font-family:monospace">ZeriFlow Data — 12,400+ sites analyzed</p> <p style="margin:0;font-size:13px;color:#e2e8f0;line-height:1.6;font-family:monospace">In ZeriFlow's dataset of 12,400+ scanned sites, the average security score is 52/100 — with 68% failing at least one critical check in categories including TLS configuration, check your security headers, DNS authentication, and cookie handling.</p> </div>
Keep reading
Is your site actually secure?
Run a free check — 60 seconds
Check your site's security right now: Free ZeriFlow scan →
Shopify provisions a free SSL certificate for every store. By default, the "Redirect to HTTPS" toggle in Online Store → Preferences → Redirect all traffic to HTTPS should be ON. Verify it is.
What this toggle alone won't catch:
Strict-Transport-Security header with a meaningful max-age out of the box on all plans. Without HSTS, users who manually type http:// could be downgraded before the redirect fires.What to do: Audit your theme's layout/theme.liquid for any http:// asset URLs. Replace them with https:// or protocol-relative //. Use ZeriFlow to confirm whether your storefront returns a valid Strict-Transport-Security header and that your TLS configuration scores well.
Shopify does not give merchants a server-side header management UI for CSP. You have two practical options:
Option A — Theme meta tag. In layout/theme.liquid, add a <meta http-equiv="Content-Security-Policy"> tag inside <head>. This is weaker than a true HTTP header (it cannot protect against certain injection vectors) but it stops most XSS attack surfaces.
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' https:; script-src 'self' 'nonce-{{ nonce }}' https://cdn.shopify.com; object-src 'none';">Option B — Reverse proxy or edge middleware. If you route traffic through Cloudflare Workers or a custom subdomain proxy, you can inject real HTTP headers before the response reaches the browser. This is the correct long-term approach for high-volume stores.
Other headers worth adding via your theme or proxy:
X-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINReferrer-Policy: strict-origin-when-cross-originPermissions-Policy: camera=(), microphone=(), geolocation=()Run a free ZeriFlow scan → to see exactly which headers your Shopify storefront is currently missing.
The Shopify App Store has over 8,000 apps. Every app you install gets an OAuth token with scopes you approve — and those scopes often include write access to orders, customers, and products.
Attack surface: A compromised or malicious app can exfiltrate customer PII, inject JavaScript into your storefront (supply-chain XSS), or modify checkout flows.
Best practices:
write_orders is a red flag.theme.liquid for injected <script> tags pointing to unfamiliar domains. Use Git-based theme development to track changes.Your Shopify admin is a high-value target. A compromised admin account can expose every customer record, every order, and every payment method on file.
[Two-factor authentication](https://zeriflow.com/blog/two-factor-authentication-setup-guide): Shopify allows store owners to require 2FA for all staff accounts under Settings → Users and permissions → Require two-step authentication. Enable this. Enforce authenticator apps (TOTP) over SMS — SIM-swap attacks are real.
Staff permission scoping:
Login activity: Review the Staff activity log periodically for unexpected login locations or bulk export events.
Shopify sends order confirmations, shipping notifications, and marketing emails from your domain (if configured). Without email authentication records, attackers can spoof your domain to phish your customers.
The three records you need:
p=none (monitoring), then move to p=quarantine and eventually p=reject._dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com; pct=100"Without a p=reject DMARC policy, your domain can be freely spoofed. ZeriFlow checks your DMARC, SPF, and DKIM alignment in its DNS and email security module.
Shopify Fraud Analysis scores orders based on IP geolocation mismatches, billing/shipping discrepancies, and known fraud signals. It surfaces a risk level (low/medium/high) on each order.
What it does well: Catches obvious card-testing attacks and orders from high-risk regions with mismatched details.
What it misses:
Augment with:
### Q: Does Shopify provide an SSL certificate automatically? A: Yes. Every Shopify store gets a free SSL certificate from Let's Encrypt, auto-renewed. What you need to verify is that HTTPS redirect is enabled in your store preferences and that your theme contains no mixed content HTTP references.
### Q: Can I add HTTP security headers to a Shopify store without a proxy?
A: Directly, no — Shopify does not expose server-side header configuration to merchants. Your options are a <meta> CSP tag in theme.liquid (partial coverage) or routing through Cloudflare Workers / a reverse proxy to inject real headers.
### Q: Which Shopify app permissions are the most dangerous?
A: write_customers, write_orders, and read_payment_methods represent the highest-risk scopes. Any app requesting these should have a clear, legitimate reason. Review all installed app scopes quarterly.
### Q: How do I check if my Shopify store's TLS is configured correctly? A: Run a scan with ZeriFlow. It checks TLS version support, cipher suites, certificate validity, HSTS presence, and all major security headers in under 60 seconds.
### Q: Is DMARC required for Shopify stores?
A: Not required by Shopify, but increasingly required by email providers. Google and Yahoo's 2024 sender requirements mandate SPF, DKIM, and DMARC for bulk senders. More importantly, without DMARC at p=reject, anyone can spoof your domain to defraud your customers.
Shopify's managed infrastructure removes a significant security burden — but it does not make your store secure by default. The gaps that remain (security headers, app vetting, admin 2FA, DMARC configuration) are entirely within your control and routinely exploited.
Audit your storefront externally to see exactly what attackers see before they do.
Run a free ZeriFlow scan → — 60 seconds, no credit card.
<!-- zf-internal-links -->
Related resources
Website Vulnerability Scanner
Run a broader website security audit across headers, TLS, DNS, cookies, SEO, and disclosure checks.
Security Headers Checker
Check CSP, HSTS, X-Frame-Options, and other response headers.
SSL Checker
Review TLS certificate, HTTPS, and transport security signals.
DMARC Checker
Validate email authentication records for domain spoofing protection.
CSP Checker
Review Content-Security-Policy coverage and common gaps.
June 24, 2026
Best Security Tools for AI Startups
Monitor your security score
Schedule recurring scans and catch regressions after deployments.