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 和回调地址一并暴露
处理步骤#
- 先吊销:在
Develop apps > 该应用卸载再重装,生成新令牌,不要先忙着删仓库 - 把新令牌写入服务器密钥管理,替换
SHOPIFY_ADMIN_TOKEN并重启服务 - 用
git filter-repo --path .env --invert-paths清理历史,再强制推送并删除旧 fork - 在 GitHub 开启 secret scanning 与 push protection,CI 日志禁止打印请求头
- 查活动日志、订单与 webhook 订阅,回滚攻击者创建的折扣码、发货和改价
验收标准#
旧令牌请求返回 401,git log -S shpat_ 无结果,仓库与 CI 日志搜不到令牌,活动日志无陌生操作。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。