正文随着供应链攻击增多,前端项目需要在包发布与安装两个阶段建立可验证链路:发布时的来源证明与安装时的完整性校验。本文给出 npm provenance 的发布实践与基于锁文件 integrity 的严格安装策略。一、在 GitHub Actions 以 provenance 发布name: publish on: push: tags: - 'v*' permissions: id-token: write contents: read jobs: npm-publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' registry-url: 'https://registry.npmjs.org' - run: npm ci - run: npm test --if-present - run: npm publish --provenance --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 二、验证发布来源与完整性npm view your-package dist.integrity npm view your-package dist.attestations 三、严格安装流程与锁文件校验npm ci npm audit --omit=dev 四、基于 integrity 的校验示例import { createHash } from 'crypto' import { readFileSync } from 'fs' function sriSha512(buf: Buffer) { const h = createHash('sha512').update(buf).digest('base64') return 'sha512-' + h } const tarball = readFileSync('dist/app.tgz') const integrity = sriSha512(tarball) console.log(integrity) 五、治理要点发布管道使用 OIDC 以 `--provenance` 生成来源证明,与账号令牌分离。安装使用 `npm ci`,严格遵循锁文件,禁止漂移;审计仅针对生产依赖。对关键产物计算 `sha512` 并与锁文件或发布元数据的 `integrity` 对比,发现不一致立即阻断。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
2.010145s