Shopify 安全与风控

shpat_ 令牌被推到 GitHub 公开仓库怎么处理

现象#

GitHub 发来 secret scanning 告警邮件,代码里明写着 X-Shopify-Access-Token: shpat_...,几天后后台出现陌生商品改动和一批发往转运仓的订单。

原因#

  • custom app 令牌长期有效,删掉 commit 也不会让已经抓取到的令牌失效
  • fork、PR 页面、CI 日志与包缓存都可能留有历史副本,只改当前分支不够
  • 令牌带着 write_orders 与 write_products,攻击者可直接改价、发货、导出客户
  • 仓库里常一起提交 .env 与 shopify.app.toml,client secret 和回调地址一并暴露

处理步骤#

  1. 先吊销:在 Develop apps > 该应用 卸载再重装,生成新令牌,不要先忙着删仓库
  2. 把新令牌写入服务器密钥管理,替换 SHOPIFY_ADMIN_TOKEN 并重启服务
  3. 用 git filter-repo --path .env --invert-paths 清理历史,再强制推送并删除旧 fork
  4. 在 GitHub 开启 secret scanning 与 push protection,CI 日志禁止打印请求头
  5. 查活动日志、订单与 webhook 订阅,回滚攻击者创建的折扣码、发货和改价

验收标准#

旧令牌请求返回 401,git log -S shpat_ 无结果,仓库与 CI 日志搜不到令牌,活动日志无陌生操作。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。