同源、CORS 与浏览器安全:练习答案
Origin、CORS 与预检
跨源 JSON POST 若带自定义 Content-Type,浏览器会先发 OPTIONS 预检;服务端必须返回匹配的 Access-Control-Allow-Origin、方法和请求头,随后实际请求才会交给页面。预检失败时页面只能观察到 CORS 网络错误,不能读取响应正文。
CSP、Trusted Types 与注入
CSP 报告应记录被阻止的内联脚本和对应控制台消息;启用 Trusted Types 后,向 innerHTML 写入普通字符串会抛出类型错误,改用 textContent 或策略生成的 TrustedHTML 才能继续。修复答案必须保留输入编码,而不是关闭安全策略。
Permissions、sandbox 与能力请求
权限查询返回 granted、prompt 或 denied,但只有 granted 且满足安全上下文与权限策略时,地理位置调用才可能成功。iframe 没有 allow="geolocation" 时,即使顶层页面已授权,子页面也可能收到拒绝;答案要把策略拒绝和用户拒绝分开记录。
存储分区、第三方与隐私
同一个第三方源在不同顶层站点下可能使用不同的分区存储;不能仅以“同源”推断两个嵌入页面共享状态。练习答案应记录顶层站点、嵌入源、窗口是否同源和实际存储键,避免把第三方 Cookie、Storage Access 和一方存储混为一谈。