浏览器跨源请求已经通过预检,服务端为何仍必须逐对象执行授权检查?
简答题中等868 次浏览
参考答案与解析
# 核心结论
预检成功只表示浏览器根据服务端返回的 CORS 响应头,允许当前页面发送特定方法、携带特定请求头的跨源请求。它既不能证明请求者是谁,也不能证明请求者有权读取或修改某个具体对象。因此,实际业务请求到达服务端后,仍必须依次完成认证、租户隔离、操作级授权、对象级授权和必要的字段级授权。可以将三类机制明确区分:CORS 决定浏览器中的脚本能否跨源读取响应,认证回答“调用者是谁”,授权回答“该调用者能否对当前对象执行当前操作”。三者相互独立,预检通过不能替代任何业务授权。
# 底层机制
非简单跨源请求通常会先由浏览器发送 OPTIONS 预检,其中包含 Origin、`Access-Control-
