← 全部指南 Shopify Security

Navi+ 如何设计以降低你 Shopify 店铺的风险

只读权限、不接触结账、不修改主题、静态 CDN 菜单:Navi+ 如何保护你的 Shopify 店铺,以及每位商家都应了解的坦诚局限。

2026 年 10 月的应用劫持事件之后,商家们对自己技术栈中的每个应用都提出了一个尖锐的问题:如果这家供应商遭到攻击,我的顾客会受到什么影响?

这是一个正确的问题。下面是关于 Navi+ 的直接回答,它基于应用的实际构建和配置方式,也包括任何应用都无法保证消除的局限。

主要发现
  • 只读权限。 Navi+ 仅向 Shopify 申请四项读取权限:主题、商品、在线商店导航和内容。不涉及订单、客户,也没有主题的写入权限。
  • 不接触结账。 Navi+ 没有结账扩展,也没有 Web 像素。它从不在结账页面上运行。
  • 不编辑主题。 店铺前台菜单通过 Shopify 应用嵌入块加载,而不是通过编辑主题文件或使用 ScriptTag。
  • 买家从不与我们的服务器通信。 菜单以静态文件的形式发布到 CDN 上。

一个只读取店铺数据、却从不触及结账或客户数据的导航层 概念插图:一个只读取店铺数据、却从不触及结账或客户数据的导航层。

Navi+ 如何接入 Shopify 店铺的示意图 示意图:Navi+ 能够触及的部分(绿色)以及它从不触碰的部分(灰色)。

属于主题中心的一部分浏览 Shopify 安全专题中心 →

1. 权限:只要菜单所需的

导航应用需要了解你的主题布局、商品、菜单和页面。Navi+ 向 Shopify 申请的,也只有这些:

  • read_themes
  • read_products
  • read_online_store_navigation
  • read_content

没有 write_themes,没有 write_script_tags,也没有订单或客户相关的权限范围。即使攻击者入侵了应用的 Shopify 访问权限,这些权限也不允许其编辑你的主题文件或读取你的订单历史。

2. 安装与管理会话:由 Shopify 签名

Navi+ 通过 Shopify 管理的安装流程和令牌交换完成身份验证。当你在 Shopify 后台中打开 Navi+ 时,Shopify 会提供一个签名的 ID 令牌。在将其交换为访问令牌之前,Navi+ 会验证四个条件:

  • 密码学签名有效。
  • 令牌是为 Navi+ 签发的。
  • 令牌属于你指定的 myshopify.com 店铺。
  • 令牌未过期。

最终获得的访问令牌是一个会过期的离线令牌,而不是永久密钥。

为防止点击劫持,Navi+ 管理页面还会指示浏览器,仅在你的店铺后台和 Shopify 后台域名中渲染。

每当 Shopify 向 Navi+ 发送后台事件(例如卸载 Webhook)时,应用都会验证 Shopify 的签名,并拒绝任何不匹配的负载。

3. 店铺前台:应用嵌入,而非主题手术

在你的店铺前台,Navi+ 完全以主题应用扩展(应用嵌入块)的形式运行。你可以在 Shopify 主题编辑器中通过一个简单的开关来启用或关闭它。由于 Navi+ 从不写入你的主题文件,我们的代码不会阻碍你的主题更新,而且如果你卸载应用,也无需从 theme.liquid 中清除残留代码。

4. 静态菜单文件:买家不发起实时调用

当你发布菜单时,Navi+ 会将其编译为 CDN 上的一个静态文件。店铺前台脚本以异步方式加载并读取该文件。买家的浏览器从不调用 Navi+ 的应用服务器或数据库。 这带来两项明确的优势:

  • 性能与韧性。 即使我们的应用服务器变慢或离线,你已发布的菜单仍然可以正常工作。
  • 故障隔离。 店铺前台脚本经过安全封装。如果它出现故障,菜单不会显示,错误会被记录,而你的店铺、购物车和结账仍可正常运行。如果主 CDN 失败,还会尝试备用 CDN。

5. 买家数据:保留在浏览器中

Navi+ 不接触结账,只读取购物车商品数量用于购物车角标。当客户登录时,菜单可以检查其客户标签或 B2B 公司信息,从而显示或隐藏特定项目,例如批发链接。这项检查发生在买家的浏览器中;我们没有发现任何途径会将这些信息发送给 Navi+。

以下两项运营细节,供你进行隐私审查时参考:

  • Navi+ 包含可选的店铺前台使用分析(Google Analytics),商家可以将其关闭。
  • 一个小规模的性能采样(约占 Shopify 页面浏览量的 5%)会记录加载耗时,并使用哈希处理后的店铺名称。它不存储 IP 地址、用户代理或页面 URL。

6. 坦诚的局限

没有任何应用供应商能够承诺“无法被入侵”。以下是我们认为谨慎的商家应当了解的 Navi+ 具体情况:

  • 菜单可以包含自定义 HTML。 Navi+ 允许商家在菜单中添加自定义 HTML 块和链接。这种灵活性很强大,但也意味着,任何能够编辑你 Navi+ 菜单的人,都可以改变店铺前台显示的内容。请据此限制 Shopify 员工权限。
  • 菜单文件由供应商提供。 与 10 月事件中的应用一样,Navi+ 从自己的基础设施提供配置。我们的保护措施包括只读权限范围、不接触结账,以及发布静态文件而非运行实时设置代码。它们能够降低风险,但无法将风险降为零。
  • 我们仍在改进。 应用的安全工作仍在持续进行,相关变化我们会及时更新本页面。

7. 如何自行检查任何菜单应用(包括 Navi+)

  1. 打开 设置 → 应用和销售渠道,选择该应用,并阅读其访问权限列表。
  2. 在主题编辑器中,查看 应用嵌入(App embeds),了解哪些应用在你的店铺前台上运行。
  3. 在无痕窗口中打开你的店铺,打开浏览器开发者工具,检查哪些域名加载了脚本。
  4. 点击所有通往结账或购物车的菜单链接,确认你始终停留在自己的域名上。
  5. 删除你不再使用的菜单应用;关闭其嵌入即可立即停止其代码运行。

如需了解全局,请阅读 2026 年 Shopify 商家面临的威胁、Shopify 已经为保护店铺所做的工作,以及值得了解的安全技术。


来源

  1. Navi+ 应用配置(权限范围、应用嵌入、店铺前台加载器),于 2026 年 11 月 4 日审阅。
  2. Shopify.dev,Token exchange:https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/token-exchange
  3. Shopify.dev,Set up iframe protection:https://shopify.dev/docs/apps/build/security/set-up-iframe-protection
  4. Shopify.dev,Privacy law compliance (webhooks):https://shopify.dev/docs/apps/build/privacy-law-compliance
  5. Roman Zipp,Shopify shops hit with ongoing Checkout Hijack attack:https://romanzipp.com/blog/shopify-hit-with-phishing-attack
分享 Facebook X LinkedIn

打造让顾客喜爱的导航

Navi+ 帮你为 Shopify 和任意网站创建高转化菜单——无需代码。

免费试用 Navi+ See Live Demo →
Explore menus: Bottom Tab Bar • Mega Menu • Mobile Drawer • Floating FAB • Plans & Pricing

开始使用 Navi+

选择您的平台 — 免费安装,几分钟内上线。