背景与价值剪贴板与下载涉及隐私与执行风险。统一权限与MIME治理可防止越权与恶意载荷。统一规范权限限制:默认禁止 `clipboard-write` 与未授权的下载触发。MIME治理:统一白名单与 `nosniff`,强制下载附件。文件名与路径:归一化并限制扩展,避免可执行。核心实现响应头治理type Res = { setHeader: (k: string, v: string) => void }
function setPolicy(res: Res) {
res.setHeader('Permissions-Policy', 'clipboard-write=(), geolocation=()')
res.setHeader('X-Content-Type-Options', 'nosniff')
}
MIME与下载const allow = new Set(['application/pdf','text/plain'])
function validMime(m: string): boolean { return allow.has(m) }
function setDownload(res: Res, filename: string) {
const enc = encodeURIComponent(filename)
res.setHeader('Content-Disposition', `attachment; filename*=UTF-8''${enc}`)
}
落地建议以权限策略默认禁用剪贴板写入与不必要的强权限,按页面例外开启。下载时统一设置 `Content-Disposition: attachment` 并校验MIME与扩展。路径与文件名归一化并采用安全白名单,拒绝潜在可执行类型。验证清单是否统一下发 `Permissions-Policy` 与 `nosniff`。下载是否为附件且MIME在白名单内。

发表评论 取消回复