跨源接口返回可缓存的个性化数据时,应如何同时约束浏览器许可、缓存键与用户授权?
简答题困难890 次浏览
参考答案与解析
# 核心结论
跨源、缓存和授权是三个相互独立的控制面:CORS 决定浏览器是否把响应暴露给某个来源,缓存键决定响应能否被其他请求复用,服务端授权决定当前身份能否访问目标对象。任一控制正确都不能补偿另外两项错误。个性化敏感响应原则上应使用 Cache-Control: private, no-store;确需共享缓存时,必须证明缓存键覆盖所有影响响应的维度,并将公共数据与用户数据拆分。所有业务请求仍须完成身份、租户和对象级授权。
# 底层机制
简单跨源请求可能直接发送;非简单请求通常先发送 OPTIONS 预检。预检通过只表示浏览器允许后续方法和请求头,并不证明用户身份或对象权限,也不能阻止某些简单请求产生副
