分发安全是一套面向分发软件的多层安全技能,覆盖纵深防御、PII 保护、密钥扫描、权限最小化、CSP 与安全 WebView 通信,适用于打包交付给用户的项目。
纵深防御:四层独立模型——认证(OAuth、MSAL、API 密钥)、授权(RBAC)、密钥扫描、审计日志。规则:各层须独立工作,某一层失败不应级联。
PII 保护:三层排除模型——.gitignore 排除版本控制,.vscodeignore/构建排除,构建管线正则扫描。个人数据规则:源码头、package.json author、README 署名等尽量使用团队/组织名;错误消息不含 PII;遥测需同意后才可收集。
密钥扫描:检测 API 密钥、连接字符串、JWT、私钥、Azure 密钥等模式并分级(High/Critical)。为减少误报,跳过 import、解释性注释、环境变量引用、测试假数据,仅对注释/import/环境引用之外的字符串字面量告警。发现项按 P0(立即)至 P3(待办)分级处理。
权限最小化:只申请实际使用的权限,避免为“未来”申请管理员范围或宽泛 *;审计时检查是否为最小范围、可否委派、可否即时申请、描述是否匹配、能否优雅降级。
CSP 与安全 UI:用 data-cmd 属性加委托监听替代内联 onclick,避免 eval()、innerHTML,外部依赖本地打包。WebView 通信通过 postMessage 消息传递,window.open() 在 WebView 中会静默失败,需由扩展调用 vscode.env.openExternal();消息双方均须校验类型。
破坏性操作的多层保护(Kill Switch):标记文件、确认对话框、键入确认、冷却计时器、审计日志,各层独立,确认对话框须仍能阻止操作。
安全测试优先级:先对认证/授权与输入校验达到 80%+ 覆盖,再做密钥处理全覆盖,最后处理 UI。SFI 合规需结合 IaC 扫描与实时订阅扫描(az resource list --subscription X),因为手动门户操作创建的资源不会被 IaC 扫描发现。
限制:资料未提供具体安装命令、收费信息、支持平台或效果数据。