背景与价值Speculation Rules允许浏览器预取与预渲染页面。合理白名单与入口校验可兼顾性能与安全。统一规范白名单:仅允许受控来源与路径前缀的页面规则。入口校验:限制 `prerender` 的触发条件与参数范围。审计:记录规则命中与预渲染结果以便优化。核心实现规则生成与校验(示意)type Rule = { source: string; where: { href_starts_with?: string }; action: 'prefetch' | 'prerender' } type Speculation = { rules: Rule[] } const allowOrigins = new Set(['https://app.example.com']) function originAllowed(u: URL): boolean { return allowOrigins.has(u.origin) } function buildSpeculation(current: URL): Speculation | null { if (!originAllowed(current)) return null return { rules: [ { source: 'document', where: { href_starts_with: current.origin + '/docs' }, action: 'prefetch' }, { source: 'document', where: { href_starts_with: current.origin + '/products' }, action: 'prerender' } ] } } 落地建议按来源与路径白名单生成Speculation Rules并动态注入,避免全站泛化触发。对 `prerender` 的入口与参数进行限制与审计,减少状态泄露风险。验证清单规则是否命中受控路径与来源;预渲染是否仅在允许入口触发。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.765356s