项目复盘: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;
  }
}
相关推荐
TOWE technology6 分钟前
智能PDU——电力分配与数据信息的价值
网络·科技·pdu·智能pdu
humors2219 分钟前
一些安全类网站(不定期更新)
linux·网络·windows·安全·黑客·白帽
ou.cs43 分钟前
c# SemaphoreSlim保姆级教程
开发语言·网络·c#
LONGZETECH1 小时前
一线汽车教师实测:迈腾380TSI电气故障仿真软件,破解教学与大赛双重痛点
网络·科技·汽车·汽车仿真教学软件·汽车教学软件·新能源汽车仿真教学软件
Pixlout1 小时前
《7元接口体系》v1.0
网络·算法·硬件工程
loockluo1 小时前
NFS网络存储部署与性能优化实战:家用服务器的学习与实践
服务器·网络·性能优化
灰子学技术1 小时前
Envoy 中 TCP 网络连接实现分析
运维·服务器·网络·网络协议·tcp/ip
IpdataCloud1 小时前
米哈游黑产案解析:游戏账号批量注册如何用IP查询识别外挂与多开用户?操作指南
网络协议·tcp/ip·游戏
不吃鱼的猫7481 小时前
【音视频流媒体进阶:从网络到 WebRTC】第04篇-流媒体场景下的网络优化
网络·音视频·webrtc
大地的一角2 小时前
(计算机网络)网络层原理与网络大致结构
服务器·网络·tcp/ip