项目复盘:websocket不受跨域限制的原理

主要还是因为:

1、WebSocket 是独立于 HTTP 的应用层协议,通过 HTTP 建立连接后,完全脱离 HTTP 语义约束。这意味着

  • 不受 HTTP 同源策略限制

  • 不需要预检请求

  • 不依赖 CORS 头机制

2、建立连接时的握手请求仍使用 HTTP 格式,但具有特殊标记:

类似于下述代码,当浏览器发起 WebSocket 连接时,会自动将当前网页的源(协议+域名+端口)填入 Origin 请求头。内部实现了跨域

javascript 复制代码
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: https://client.example.com  // 关键跨域标识
Sec-WebSocket-Version: 13

注:虽然目前服务端不做白名单校验也能成功,但为了安全还是要做一下di~

服务端可以用下列代码进行验证以防恶意操作

javascript 复制代码
wss.on('connection', (ws, req) => {
// 进行白名单校验
  const allowedOrigins = ['https://myapp.com', 'https://admin.myapp.com'];
  if (!allowedOrigins.includes(req.headers.origin)) {
    ws.close(1008, 'Invalid origin'); // 关闭非法来源连接
    return;
  }
}
相关推荐
树℡独3 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
zhang133830890754 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
津津有味道4 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
酣大智5 小时前
接口模式参数
运维·网络·网络协议·tcp/ip
Genie cloud5 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
24zhgjx-lxq6 小时前
华为ensp:MSTP
网络·安全·华为·hcip·ensp
ling___xi6 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络
REDcker6 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
Up九五小庞6 小时前
用arpspoof实现100%批量切断192.168.110.10 - 192.168.110.100 断网(双向欺骗)--九五小庞
网络·开源
躺柒6 小时前
读数字时代的网络风险管理:策略、计划与执行04风险指引体系
大数据·网络·信息安全·数字化·网络管理·网络风险管理