Shopify App Security Tools: What Code Scanners Miss About Merchant Data

Guest Author
Published:
October 15, 2026

No application security scanner can confirm that a Shopify app keeps one merchant’s data away from another. Aikido, Semgrep, Snyk and GitHub Code Security catch risky code and vulnerable packages. Burp Suite DAST and ZAP test the running app. Tenant isolation stays a test you write yourself.

Quick Decision Framework

  • Who This Is For: Shopify app developers, from a solo builder shipping a first public app to a partner team maintaining several listed apps with Level 2 protected customer data access.
  • Skip If: You are a merchant trying to secure your own store rather than a developer shipping software. That is a different problem and a different toolset, covered in our roundup of Shopify security apps for merchants.
  • Key Benefit: A like for like comparison of six tools with pricing verified in October 2026, plus the four authorization checks none of them perform for you.
  • What You’ll Need: Repository access, a development store, and your app’s current access scopes and protected customer data level.
  • Time to Complete: 14 minutes to read, two to three days to pilot one tool against one real finding.
  • Last updated: October 2026

Shopify’s own security guidance is blunter than any scanner report: never derive identity from something the caller sent you. Not one tool on this list can tell you whether your app obeys that instruction.

What You’ll Learn

  • Why a clean static analysis and dependency scan says nothing about whether shop A can read shop B’s orders
  • What each of these six tools actually costs as of October 2026, and which three have a free tier a real app team can work inside
  • How Shopify’s four step authorization check translates into tests your scanner will never write for you
  • When a dynamic scanner earns its setup cost, and when it is premature complexity for a single app team
  • What changes about your tooling choice the moment your app holds Level 2 protected customer data

A Shopify app is not a screen inside the admin. Depending on how it is built, it is a backend, a set of stored access tokens, scheduled jobs, a dependency tree, webhook endpoints, and a database holding order and customer records belonging to every merchant who installed it. The platform secures checkout and the merchant’s admin. Everything on that list is yours.

That distinction decides which tools matter. Shopify handles PCI scope for payments, which is why app security work concentrates somewhere else: on the custom software and the infrastructure the developer controls. If you are earlier than tooling in that journey, our complete guide to building a Shopify app covers the ground before this one, and building secure Shopify apps covers the practices these tools automate.

The six tools below are listed alphabetically. Nothing here is ranked, and no tool holds a number one position, because the right choice depends on your stack, your team size and whether anyone is going to own the configuration after it is installed. The comparison grid and the Best For section are built to help you work out which one fits your situation.

How these six tools were chosen

Four criteria were applied to every tool on this list, and every write up below judges each tool against the same four. One, it covers source code, dependencies, or the running application on the kind of stack a Shopify app is typically built on. Two, it publishes pricing or states a licensing model a developer can evaluate without booking a sales call. Three, it runs in continuous integration or on a pull request rather than only on a laptop. Four, its documentation is public and current.

The research base is vendor documentation and pricing pages read in full in October 2026, read against Shopify’s own published app security and protected customer data requirements. Pricing figures below are traced to the vendor’s own pricing page on that date, not to third party summaries.

Dependabot was considered and excluded, because it ships inside GitHub rather than presenting a separate purchase decision, and it is covered under GitHub Code Security below. Shopify’s own app review was considered and excluded because it is a gate your app passes through, not a tool you run against your code.

At a glance

Tool
Starting price (Oct 2026)
Best for
Skip if
Aikido Security
Free tier, then $300/mo
One console for code and cloud
You need one scanner only
Burp Suite DAST
Quote only, no public price
Scheduled authenticated portfolio scanning
One app, no security owner
GitHub Code Security
Add on to Team or Enterprise
Teams already reviewing in pull requests
Your code lives elsewhere
Semgrep
Free to 10 contributors, then $30/mo
Rules matching your own conventions
Nobody will maintain rules
Snyk
Free tier, Team from $25/mo
Dependency heavy application stacks
You need deep custom rules
ZAP
Free and open source
Teams that will configure authentication
No time to configure scope

Pricing in the grid and throughout this article is as of October 2026, taken from each vendor’s own pricing page.

Aikido Security

Aikido Security is a consolidated application security platform that puts source code, dependency, secret and cloud scanning behind one console, aimed at development teams without a dedicated security engineer.

Aikido’s code security platform covers static analysis, dependency scanning with software bill of materials output, secrets detection, infrastructure as code checks across Terraform, CloudFormation and Kubernetes, licence scanning, container image scanning and malware detection in dependencies. It integrates at three points a Shopify app team already has: the editor, the pull request and the continuous integration pipeline. The platform also carries cloud posture and dynamic testing modules, which is the argument for it over a single purpose scanner: one place to look rather than four dashboards reporting on the same application.

As of October 2026, Aikido’s published pricing runs a free Developer plan at $0 covering 2 users, 10 repositories and 2 container images, with scans rescanning every three days and no autofix or autotriage. Paid plans start at $300 per month for the Basic tier, which includes 10 users and 100 repositories, with Pro and Advanced both listed at $600 per month at different repository and cloud account ceilings. Eligible startups under $1.5M in funding with fewer than 10 team members are offered up to 30% off. Penetration testing is priced separately, with a typical single application assessment listed at $4,000.

Two strengths stand out for an app team specifically. The platform filters findings by reachability, exploitability and exposure rather than reporting every match, which is the difference between a backlog someone works and a backlog someone ignores. And the free tier is genuinely usable: 10 repositories covers most single app teams, so the evaluation costs nothing but configuration time.

The honest limitations. First, breadth comes at a price step that is steep for a small team, because $300 per month is the floor once you exceed two users or 10 repositories, and there is no intermediate tier between free and Basic. Second, consolidation means your security tooling and your security reporting share a single vendor, so a gap in one module is a gap you may not notice from inside the same console. The vendor’s own marketing cites a customer claim of 92% noise reduction; treat that as one customer’s result rather than a benchmark.

Best fit for a Shopify app team of two to ten developers with no dedicated security engineer, running one or more apps with a backend and cloud infrastructure they own, who would rather configure one tool well than four tools partially.

Skip if you only need dependency alerting, which the free tiers below cover, or if you already run a static analysis tool your team maintains rules for and the consolidation argument does not apply to your situation.

Burp Suite DAST

Burp Suite DAST is PortSwigger’s enterprise dynamic scanner, built to test running web applications on a schedule across a portfolio rather than during a single hands on assessment.

Burp Suite DAST runs the same scanning engine, check identifiers and severity model as Burp Suite Professional, which matters because a DAST finding can be handed to a tester and reproduced in Pro. Its crawler is Chromium based, so it handles single page applications, GraphQL and WebSockets rather than only server rendered pages. It scans APIs defined by OpenAPI, Postman, SOAP or GraphQL schemas, deploys as managed cloud or self hosted including air gapped, and connects to Jenkins, GitHub Actions, GitLab CI, Azure DevOps, Bitbucket Pipelines, CircleCI and TeamCity. Authentication is the part that matters most for an embedded app: PortSwigger’s documentation describes capturing the session once so that “the scanner explores everything behind the login,” with native support for Basic, Bearer Token, API Key and OAuth 2.0 client credentials.

Pricing as of October 2026 is the first limitation. PortSwigger publishes no price for Burp Suite DAST on the product page, pointing instead to a separate pricing page and referring to concurrency licensing as a programme control without explaining how it works. Budget for a sales conversation rather than a self serve signup.

The strengths are real where they apply. Every finding arrives with the request sent and the response that confirmed it, which removes the argument about whether a result is genuine. And scans can be triggered on pull request or on merge with merges gated by severity, routing findings back to the engineer who opened the pull request rather than into a queue.

The second honest limitation is operating model. Burp Suite DAST is distinct from Burp Suite Professional’s manual testing workflow, and choosing wrongly is a common and expensive mistake: if what you actually need is one specialist investigating your app by hand, Pro is the product and DAST is overhead. A scanner on a schedule also only tests the routes it reaches, so confirm which routes the crawler actually touched before treating a clean run as coverage.

Best fit for a partner team maintaining several listed apps with someone whose job includes security, where scheduled authenticated scanning across a portfolio replaces work nobody currently does.

Skip if you ship one app, have no named security owner, and have not yet run static analysis and dependency scanning in your pipeline. Dynamic scanning on top of an unscanned codebase is the premature complexity that catches app teams at exactly this stage.

GitHub Code Security

GitHub Code Security is a paid add on that brings code scanning and dependency review into the GitHub repository workflow for private and internal repositories, and it is now a separate product from GitHub Secret Protection.

The packaging detail is the one most teams get wrong, so read it from the source. GitHub Code Security is documented as one of two separately purchasable GitHub Advanced Security products. GitHub’s own wording is that it “makes extra security features available to customers who purchase GitHub Code Security or GitHub Secret Protection,” and that you “must be on a GitHub Team or GitHub Enterprise plan in order to purchase” either one. Code Security covers code scanning, the CodeQL command line interface, Copilot Autofix, security campaigns, custom auto triage rules for Dependabot, dependency review and the security overview. Secret scanning and push protection sit in Secret Protection, the other product. Assuming one purchase covers both is how an app team ends up with code scanning and no secret detection.

Some features, including code scanning and secret scanning, are enabled by default on public repositories at no cost, and the dependency graph with Dependabot alerts is included in every plan. A Shopify app in a private repository, which is almost all of them, falls outside that free coverage.

Two strengths favour it. Adoption cost is close to zero where pull requests are already your review surface, because findings arrive where the team already looks rather than in a new dashboard. And CodeQL is available as a command line tool, so the same queries run locally and in the pipeline.

The honest limitations. First, it is tied to GitHub, so a team hosting on GitLab or Bitbucket gets nothing from it. Second, the split packaging means the full picture costs two purchases, and GitHub’s availability tables are not always clear about which specific features land free on public repositories, so verify your own plan rather than inferring it.

Best fit for a Shopify app team already hosting on GitHub on a Team or Enterprise plan, where pull request review is the main quality gate and adding a separate scanner would mean a dashboard nobody opens.

Skip if your code is hosted outside GitHub, or if you are on a Free or Pro personal plan, because the purchase is not available to you without a plan change first.

Semgrep

Semgrep is a static analysis platform whose distinguishing feature is that rules are written in a readable schema matching code semantically, which makes it the strongest option when the risky patterns you care about are specific to your own codebase.

Semgrep describes itself as a software security tool providing static application security testing, extending into software composition analysis and secrets detection. The product line is Semgrep Code for first party code, Semgrep Supply Chain Analysis for open source dependency vulnerabilities, Semgrep Secrets for exposed credentials, and Semgrep Multimodal for AI assisted recommendations. You can run community rules, vendor rules or your own. One deployment detail stands out for a team with a sensitive codebase: the documentation states that “Semgrep does not require code access to complete the core deployment process,” and that your code is not sent anywhere during it.

Pricing as of October 2026, from Semgrep’s pricing page, is a Free Edition at $0 for up to 10 contributors covering Code and Supply Chain across 10 repositories with a maximum of 10 private repositories, authenticated through GitHub or GitLab only. Teams starts at $30 per month per contributor for Code, the same again for Supply Chain, and $15 per month per contributor for Secrets, each priced separately, with a 500 private repository ceiling. Enterprise is volume priced on request.

For a Shopify app, the rule writing capability has one obvious application. Authorization logic in an app backend usually funnels through a small number of shared helper functions, and a rule that flags any database query on a tenant scoped table that does not pass through those helpers is exactly the kind of convention a generic ruleset cannot know about. That is worth more to an app team than a hundred generic findings.

The honest limitations. First, custom rules are a standing maintenance commitment, and a rule nobody updates becomes a rule everybody bypasses; if no one on the team will own the ruleset, you are buying generic static analysis at a per contributor price. Second, the per product pricing adds up: Code plus Supply Chain plus Secrets reaches $75 per month per contributor on Teams, so a five person team runs to $375 per month for the full set, above Aikido’s $300 Basic floor.

Best fit for an app team with at least one developer who will own a ruleset, where the authorization and data access conventions are consistent enough to encode and important enough to enforce on every pull request.

Skip if nobody will maintain rules, or if your main concern is vulnerable dependencies rather than your own code patterns, in which case you are paying for the feature you will not use.

Snyk

Snyk is a developer focused security platform strongest on open source dependency analysis, and the natural pick for a Shopify app whose risk surface is mostly the packages it installs rather than the code it ships.

Snyk covers Snyk Open Source, Snyk Code, Snyk Secrets, Snyk Container, Snyk Infrastructure as Code, Snyk Essentials and Snyk API and Web. Its documentation positions the platform around the developer’s own workflow, stating that Snyk “integrates directly into your IDEs, workflows, and automation pipelines.” For a typical Node or Rails Shopify app with a deep dependency tree, that integration point is where dependency findings are cheapest to act on, which is before the package is merged rather than after it is deployed.

Pricing as of October 2026, from Snyk’s plans page, is a Free plan at $0 covering 5 projects with 100 Snyk Code tests per month, a Team plan starting at $25 per month for up to 10 developers covering 100 projects and 1,000 Snyk Code tests per month, and Enterprise on a credit rate card where one credit is one dollar and capabilities are metered per active contributor per day. Note the shape of that Team price: it is a flat rate for a team of up to ten rather than a per seat charge, which makes it the cheapest paid entry point on this list for a small app team.

Two strengths. Remediation advice arrives as a suggested version change rather than a bare vulnerability identifier, which is what makes dependency findings actionable in a sprint. And the monthly test allowances on the free tier are published rather than vague, so you can tell in advance whether the free plan covers your pipeline volume.

The honest limitations. First, Snyk Code is the weaker half of the platform compared with purpose built static analysis; if encoding your own authorization conventions is the goal, the rule writing options above do it better. Second, the Enterprise credit model prices several capabilities per active contributor per day, which is hard to forecast for a team whose contributor count moves, and usage beyond the prepaid pool is invoiced after the fact rather than blocked.

Best fit for a Shopify app team of up to ten developers on a dependency heavy stack who want one flat monthly price, dependency remediation in the pull request, and no per seat arithmetic.

Skip if your primary need is deep custom static analysis rules for your own code, or if you are a single developer whose five projects fit inside the free plan, where paying for Team buys headroom you do not yet use.

ZAP

ZAP, the Zed Attack Proxy, is a free and open source dynamic web application scanner, and it is the only tool on this list whose cost is entirely your own configuration time.

ZAP describes itself as the world’s most widely used web app scanner, a community based project in GitHub’s top 1000 repositories that anyone can contribute to, now presented under Checkmarx stewardship while the project page states that “ZAP is an independent Open Source project.” It scans web applications for security issues, carries a marketplace of community add ons, and documents a range of security automation options. For a Shopify app team, the relevant capability is testing the running application rather than its source: the behaviour of your backend when a request arrives with a session that should not be allowed to make it.

Pricing as of October 2026 is $0. The project page states plainly that ZAP is free and open source, with no paid tier, seat count or scan quota to plan around.

The strengths follow from that. There is no procurement step, so a developer can run an authenticated scan against a development store this afternoon without a budget conversation, which makes it the cheapest way to find out whether dynamic testing tells you anything useful about your app before committing to a commercial scanner. And the automation framework means a configuration that works can move into your pipeline rather than living on one laptop.

The honest limitations, and they are the reason teams abandon it. First, the real work is configuration rather than scanning: establishing authenticated access, defining a safe scope so you do not scan what you are not authorised to scan, and converting raw output into tickets a developer will act on. The project page does not even document authenticated scanning prominently, which tells you where the learning curve sits. Second, there is no vendor to escalate to when a scan behaves unexpectedly, and triage quality depends on your own knowledge of the application rather than on a prioritisation engine.

Best fit for an app team with a developer willing to invest two to three days in authentication and scope configuration, and for any team wanting to validate that dynamic testing is worth paying for before paying for it.

Skip if nobody has time to configure authentication and scope properly, because an unconfigured ZAP run that crawls your login page and reports nothing is worse than no dynamic testing at all: it produces a clean report you did not earn.

Which of these fits your situation

The right starting point depends on your team size, your stack and who will own the configuration a month after it is installed, not on which tool is strongest in the abstract.

If you are a solo developer or a pair shipping a first public app, start free and stay free. Snyk’s free plan at 5 projects and 100 code tests per month, Semgrep’s free edition at 10 contributors and 10 repositories, and Aikido’s free Developer plan at 2 users and 10 repositories will each cover a single app, and ZAP costs nothing but time. Pick one code and dependency scanner, run it on every pull request, and do not add a second until the first one produces findings you are actually fixing. The failure pattern at this stage is not using the wrong tool, it is installing three and reading none.

If you are a team of three to ten maintaining one or two listed apps, the decision is consolidation against specialisation. Snyk’s Team plan at $25 per month for up to ten developers is the cheapest paid step and the right call if your risk is concentrated in dependencies. Aikido’s Basic at $300 per month makes sense when you also own cloud infrastructure and would otherwise be buying a second tool for it. Semgrep at $30 per month per contributor for Code is the call when your authorization conventions are worth encoding and someone will encode them. If you are already on GitHub Team or Enterprise, price GitHub Code Security first, because the adoption cost of findings appearing in a pull request your team already reads is lower than any of the above.

If you are a partner team with several listed apps and someone whose job includes security, this is where dynamic testing starts paying for itself, and where Burp Suite DAST’s scheduled authenticated portfolio scanning does work nobody on a small team was doing. Validate the approach with ZAP against one app first; if a free scanner configured properly finds nothing a commercial one would, you have saved a sales cycle.

One trade off worth stating honestly: every consolidation argument on this page is also a concentration argument. One console means one place to look, and it also means a blind spot in one module is a blind spot you cannot see from inside the same console. Teams that run two tools catch more and ignore more. There is no configuration of this list that removes that tension.

Build coverage around the merchant boundary

The question none of these six tools answers is whether merchant A’s data can reach merchant B, and that is the question a Shopify app exists to get right. Static analysis finds an injectable query. Dependency scanning finds a vulnerable package. Dynamic scanning finds a route that behaves badly under a crafted request. None of them knows that your orders table is tenant scoped, which column carries the shop identifier, or that a particular endpoint should have rejected the caller it served.

Start from Shopify’s authentication guidance to establish which token model your app actually uses, because the answer changes the test. Embedded apps built with the Shopify CLI use token exchange, swapping a short lived identity token for an access token without a redirect. Apps living outside the admin use the authorization code grant. Online tokens last for a staff member’s session and offline tokens persist, which means a bug in how you store and scope offline tokens is a bug that outlives the session that created it.

Shopify’s security best practices guide then states the rule plainly and gives you the test: never derive identity from something the caller sent you. The four steps it prescribes are authenticate the request, derive the shop from that identity, confirm the resource belongs to that shop, and confirm the caller may perform the action. Write those four as automated tests with two real merchants in two development stores, and you have covered the gap this entire tooling list leaves open. The practical shape is the one described in building secure Shopify apps: every tenant scoped table carries a shop identifier, every query filters on it, and permission checks are the first thing your test suite asserts.

Three more tests belong next to those four, and no scanner writes them either. Verify webhook HMACs against the raw request body before parsing it, because parsing first and verifying second is a verification that proves nothing. Test what happens when an app is uninstalled and access is removed, because an app that keeps serving a revoked token is an app holding data it no longer has permission to hold. And if your app touches customer name, address, email or phone, you are at Level 2 under Shopify’s protected customer data requirements, which add encrypted backups, separated test and production data, access logging, limited staff access and an incident response policy to the Level 1 baseline of data minimisation, retention limits and encryption at rest and in transit. Those are review obligations, not scan results, and we covered the original shift toward them in the requirements for apps that use customer personal data.

The practical sequence, then, is not tool first. Establish your token model and your protected data level, write the authorization and uninstall tests that follow from them, and only then pick the scanner that covers the rest of the surface at a price your team size justifies.

Where this leaves your tooling decision

There is no best application security tool for Shopify app developers, which is why this list is unranked and alphabetical. All six earn a place in the category and each one covers a genuinely different part of the surface: Aikido consolidates, Semgrep encodes your conventions, Snyk handles dependencies cheaply at small team size, GitHub Code Security meets a team where it already works, and Burp Suite DAST and ZAP test the application as it actually runs rather than as it reads.

What should decide it is your stage. One app and no security owner means one free scanner on every pull request and nothing more. A paid tier is worth it when findings are being fixed rather than accumulating. Dynamic scanning is worth it when someone owns the configuration. And at every stage, the authorization tests stay yours, because the thing merchants are actually trusting your app with is the boundary between their data and someone else’s, and no scan result on this page is evidence that the boundary holds.

If you are deciding this week, the cheapest honest move is to run a free tier against your real repository, take one finding, and follow it through to a reviewed fix. A tool that produces a fix your team shipped is worth more than a tool that produces a report nobody opened.

Frequently asked questions

What is the best application security tool for Shopify app developers?

There is no single best application security tool for Shopify app developers, because the right choice depends on team size, where your code is hosted, and whether your risk sits in your own code or in your dependencies. A solo developer is usually best served by a free tier, whether that is Snyk, Semgrep or Aikido. A team of up to ten on a dependency heavy stack gets the cheapest paid step from Snyk’s Team plan at $25 per month as of October 2026. A team already on GitHub Team or Enterprise should price GitHub Code Security first on adoption cost alone. The Which of these fits your situation section above maps each situation to a starting point.

How much do application security tools cost for a small app team?

As of October 2026, a small Shopify app team can run meaningful code and dependency scanning for nothing, and paid plans start at $25 per month. Snyk’s free plan covers 5 projects and 100 code tests per month, Semgrep’s free edition covers 10 contributors and 10 repositories, Aikido’s free Developer plan covers 2 users and 10 repositories, and ZAP is free and open source with no tiers at all. On paid plans, Snyk Team starts at $25 per month for up to ten developers, Semgrep Teams starts at $30 per month per contributor per product, and Aikido Basic starts at $300 per month. Burp Suite DAST publishes no price and is quoted on request.

What is the difference between Semgrep and Snyk?

Semgrep is strongest at static analysis of your own code using rules you can write yourself, while Snyk is strongest at finding and remediating vulnerabilities in your open source dependencies. Semgrep’s rules match code semantically in a readable schema, which lets an app team encode its own conventions, such as flagging any query on a tenant scoped table that bypasses the shared authorization helper. Snyk’s strength is the dependency side, with remediation advice arriving as a suggested version change. Pricing differs in shape too: Semgrep Teams is per contributor per product from $30 per month, while Snyk Team is a flat rate from $25 per month for up to ten developers, both as of October 2026.

Does a security scan satisfy Shopify’s protected customer data requirements?

No, a security scan does not satisfy Shopify’s protected customer data requirements, because those requirements are organisational and architectural rather than code level findings. Level 1 requires processing only the minimum personal data needed, informing merchants what you process and why, applying customer consent decisions, setting retention periods, and encrypting data at rest and in transit. Apps touching customer name, address, email or phone fall under Level 2, which adds encrypted backups, separated test and production data, a data loss prevention strategy, limited staff access, strong staff passwords, an access log and a security incident response policy. Shopify may select an app for a data protection review requiring evidence of all of it. A scanner cannot produce that evidence.

When should a Shopify app team add dynamic application security testing?

Add dynamic application security testing once static analysis and dependency scanning are running on every pull request and the findings are being fixed rather than queued, and once someone on the team owns the configuration. Dynamic scanning tests the running application, which means it needs authenticated access, a defined safe scope limited to your own development store or authorised environment, and someone to convert output into developer tasks. Start with ZAP, which is free, to establish whether dynamic testing surfaces anything your code scanning missed. Move to a commercial scanner such as Burp Suite DAST when you are maintaining several apps on a schedule and a named person is responsible for the programme.

FIND US ONLINE

WEEKLY DTC INSIGHTS

TRUSTED BY THOUSANDS

TRUSTED PARTNER

Choose a language