长连接握手自动携带会话凭证时,怎样阻止跨站连接劫持?
简答题困难732 次浏览
参考答案与解析
# 核心结论
浏览器建立 WebSocket 等长连接时,握手请求可能自动携带目标站点的会话 Cookie,但普通 CORS 响应头不会自动保护这类协议升级。服务端如果只确认用户已登录,却不判断连接由哪个网页上下文发起,恶意站点就可能借受害者的浏览器建立连接、发送指令并读取服务端推送的数据。这类风险通常称为跨站长连接劫持,本质上同时涉及跨站请求伪造、连接认证和消息级授权。可靠防线应包括:握手阶段精确校验 Origin,使用短期、一次性且限定用途的连接票据,并在频道订阅和每条敏感消息上继续进行服务端授权。
# 底层机制
WebSocket 连接从带升级语义的 HTTP 握手开始。浏览器通常发送 `
