📦 依赖与供应链安全¶
现代前端 90%+ 代码来自依赖,供应链攻击(投毒/篡改)影响面极大。依据 OWASP A06/A08、Snyk 供应链安全。
1. 基础¶
npm audit定期扫漏洞,升级有 CVE 的依赖。- 锁定版本(
package-lock.json/pnpm-lock.yaml),避免意外升级引入问题。 - 审查
postinstall脚本——恶意包常在安装时执行代码。
2. 高级进阶¶
- 依赖投毒:攻击者劫持维护者账号或发 typosquat(如
lodash-util仿lodash)。用私有源 + 锁版本 + SCA 工具(Snyk/Dependabot)。 - 供应链 SBOM:生成软件物料清单,出事能快速定位受影响版本。
- CDN 投毒:引用的第三方 JS(如统计/SDK)如被篡改会直接 XSS → 用 SRI(见 点击劫持)。
postinstall 脚本风险
// ❌ 陌生包的安装脚本可能在你机器上执行任意命令
"scripts": { "postinstall": "node malicious.js" }
package.json,对 preinstall/postinstall 保持警惕,优先用 lock 文件 + 私有镜像。
3. 使用场景¶
- CI 流水线:集成
npm audit/ Snyk,失败则阻断发布。 - 私有 npm 源:企业内网镜像,避免直连公网被投毒。
- 第三方 SDK:加 SRI 校验 + CSP 白名单。