核心要点来源白名单与 `https` 强制;证书指纹与 SRI 哈希校验。异常触发阻断并回退到最近可信镜像;记录审计与证据。实现示例type Source = { url: string; certSha256?: string }
type Entry = { name: string; version: string; resolved: string; integrity: string }
const allowOrigins = new Set<string>(['https://registry.npmjs.org','https://registry.example.com'])
function isHttpsUrl(u: string): boolean {
try {
const url = new URL(u)
return url.protocol === 'https:' && allowOrigins.has(url.origin)
} catch {
return false
}
}
function parseSri(integrity: string): { alg: 'sha256'; b64: string } | null {
const m = /^sha256-([A-Za-z0-9+/=]+)$/.exec(integrity)
return m ? { alg: 'sha256', b64: m[1] } : null
}
function sourceValid(e: Entry): boolean {
return isHttpsUrl(e.resolved) && !!parseSri(e.integrity)
}
function fallback(current: string, candidates: string[]): string | null {
for (const c of candidates) {
try {
const u = new URL(c)
if (u.protocol === 'https:' && allowOrigins.has(u.origin)) return c
} catch {}
}
return null
}
审计与运行治理审计包含来源、证据与回退镜像;异常期间采用只读令牌与哈希强制。变更来源需审批;回退结束后进行完整性复核。

发表评论 取消回复