概述PNA(Private Network Access)限制公共网站直接访问用户私有网络端点,降低 CSRF 等风险。浏览器在发起私有网络子资源请求前会发送预检请求,要求目标服务器显式同意并返回特定头。预检与头预检:对私有网络的子资源请求,浏览器发送 CORS 预检以获取权限;预检可能也适用于同源请求(若目标 IP 更私有)[参考1]。额外头:预检中包含 `Access-Control-Request-Private-Network: true`;服务器需相应返回允许头,且请求实际的响应也需满足 CORS 要求(若为 `cors` 模式)[参考1,2]。部署注意DevTools 警告与版本计划:自 Chrome 104 起警告,自 130 强制;后续滚动与范围可能调整(当前计划处于暂停/更新状态),需关注官方更新[参考2]。与传统 CORS 配置联动:除 PNA 额外头外,仍需正确设置 `Access-Control-Allow-Origin` 等 CORS 响应头;预检请求不携带凭据,响应需明确允许凭据用于实际请求[参考3,5]。参考与验证[参考1]Chrome 博客:PNA 预检机制与 `Access-Control-Request-Private-Network` 说明:https://developer.chrome.com/blog/private-network-access-preflight[参考2]Chrome 博客:PNA 更新与扩展保护范围、实施状态说明:https://developer.chrome.com/blog/private-network-access-update-2024-03[参考3]MDN 中文:CORS 指南与预检请求说明(凭据与简单/非简单请求):https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/CORS[参考4]Issue:CORS 简单与预检解释与实践示例:https://github.com/amandakelake/blog/issues/62[参考5]MDN:CORS 概览与预检模式说明(英文):https://mdn.org.cn/en-US/docs/Web/HTTP/CORS关键词校验关键词与 PNA 预检与 CORS 权限一致。

发表评论 取消回复