怎么配置 Web 服务器防御针对 Web Socket 的协议攻击实战

星芳君_2525

星芳君_2525

2026-07-18

131人浏览

原创

必须实施多层防护:Nginx层按IP限流并强制WSS,应用层校验Origin、JWT认证、独立滑动窗口限速及心跳超时,杜绝CSWSH、DoS与未授权操作。

怎么配置 web 服务器防御针对 web socket 的协议攻击实战

要防御针对 WebSocket 的协议攻击,不能只靠前端或单一层防护,必须在反向代理层、传输层、应用逻辑层做多级联动配置。核心是堵住握手阶段的入口、加密通道、限制连接行为、校验身份来源。

强制启用 WSS 并禁用明文 ws://

所有 WebSocket 连接必须走 wss://,禁止任何 ws:// 请求抵达服务端。Nginx 或负载均衡器需配置 301 重定向或直接拒绝:

  • 在 Nginx 中添加 location 块拦截 ws:// 请求:if ($scheme = 'http') { return 301 https://$host$request_uri; }
  • 后端服务(如 ASP.NET Core、Node.js、uWebSockets)启动时检查 context.Request.IsHttps 或 req.socket.encrypted,非 HTTPS 握手直接返回 403
  • 证书必须由可信 CA 签发,禁用 TLS 1.0/1.1,仅允许 TLS 1.2+ 与强加密套件(如 ECDHE-ECDSA-AES256-GCM-SHA384)

在反向代理层做 IP 级连接限流

浏览器的并发连接限制(6–10 个)完全不可信,攻击者可用 curl、ws-cli 或自研脚本绕过。Nginx 必须作为第一道闸门拦截超额连接:

  • 用 map 提取真实客户端 IP(支持 X-Forwarded-For 或 CF-Connecting-IP,并配合 set_real_ip_from 防伪造)
  • 配置 limit_conn_zone 按 IP 统计活跃连接数,例如单 IP 最多 5 个 WebSocket 并发连接
  • limit_conn 作用于 /ws 路径,且仅对 Upgrade: websocket 请求生效——它在 HTTP 握手阶段就拦截,不消耗后端资源

服务端实施细粒度连接管控

连接建立后仍需防御高频消息、长连接滥用、未授权操作等:

  • 每个 websocket.Conn 实例绑定独立滑动窗口计数器,限制每秒最大消息数(如 ≤10 条),避免全局限速误杀正常用户
  • 设置心跳超时(如 45 秒无 ping/pong 自动断连),防止空连接堆积耗尽 fd
  • 在握手阶段验证 Origin 头是否匹配白名单域名,防止跨站 WebSocket 劫持(CSWSH)
  • 拒绝携带非法 Sec-WebSocket-Protocol 子协议的请求,只接受预定义协议名(如 chat.v1、datafeed.v2)

认证与数据校验必须落地到帧处理环节

WebSocket 没有内置认证,凭证必须在握手时传递,并在后续每帧处理中复核权限:

  • 推荐使用短期 JWT(有效期 ≤15 分钟)通过查询参数或 Authorization 头传入,服务端解析后存入连接上下文
  • 避免用 localStorage 存 token;若用 Cookie,必须设 Secure、HttpOnly、SameSite=Strict
  • 接收消息帧前,校验该连接对应的用户是否有权访问目标频道或执行对应操作(如 “用户 A 不能向频道 B 发送 admin 指令”)
  • 对敏感指令(如资金划转、设备控制)额外要求二次确认或签名验签,不依赖前端传来的原始字段
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1116

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

1009

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

534

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5972

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

907

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习