首页
学习
活动
专区
圈层
工具
发布

ASP.NET Core 因为 Nginx 配置 Connection 为 Upgrade 导致 Kestrel 返回 400 错误

由客户端发起给服务端询问可以服务器端选择是否要升级到新协议,这个机制可以做到如客户端使用HTTP/1.1去连接服务器端,询问服务器端是否能升级到HTTP2甚至是WebSockets协议。...Upgrade” 来指示这是一个升级请求 Upgrade: protocols Upgrade 头指定一项或多项协议名,按优先级排序,以逗号分隔 一个典型的包含升级请求的例子差不多是这样的: GET...– A Blog 所说方法,配置如下 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade...http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade...如 signalr 技术,此时的配置如下 http { map $http_connection $connection_upgrade { "~*Upgrade" $http_connection

2.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Request Smuggling Via HTTP2 Cleartext

    是解决我们面临的请求走私问题的一个很有前途的解决方案,但对HTTP/1.1的支持不会很快消失,与此同时我们仍然会收到HTTP/1.1的更多惊喜 在这篇文章中,我演示了如何通过明文(h2c)连接将HTTP/1.1连接升级到鲜为人知的...Egorov(@0ang3el)的WebSocket走私研究中,他证明了当升级到WebSocket连接时,通过触发后端问题,代理将连接升级到TCP隧道时他可以保持与后端的流水线HTTP/1.1连接,这允许请求被走私...TLS-ALPN)进行协商的,它由字符串"h2"标识,这发生在我们发送第一个HTTP请求之前,然而HTTP/2也可以通过HTTP/1.1升级头启动,由字符串"h2c"标识,用于明文通信,下面是一个请求示例: GET...{ proxy_pass http://backend:9999; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade...; proxy_set_header Connection $http_connection; } location /flag { deny all; }

    1.9K10

    国内航空巨头如何从 NGINX 迁移至 APISIX?

    作者 | 卞弘智 本文主要介绍了航空公司互联网能力持续提升的大背景下,国内某大型航空公司移动互联网基础架构团队针对南北向网关从 NGINX 升级到 APISIX 的历程。...由于我们有大量复杂的域名配置,而且有些配置相当复杂,部分网关从 NGINX 升级到 OpenResty 时,能实现无缝衔接,只需复制配置文件即可使用。...类似的 NGINX 的配置向 APISIX 进行迁移的代码案例我们还有很多,例如在 NGINX 中 websocket 协议需要进行如下配置: proxy_set_header Upgrade $http_upgrade...proxy_set_header Connection ""Upgrade""; proxy_http_version 1.1; 而在 APISIX 就进行了封装,非常简单明了: "enable_websocket...在 APISIX 中,往往可以通过插件实现更加优雅的解决方案,例如跨域支持(cors)、WebSocket 等。

    92530

    Nginx 作为 WebSockets 代理

    WebSocket 和HTTP协议不同,但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。...用来将连接从HTTP升级到WebSocket的HTTP升级机制使用HTTP的Upgrade和Connection协议头。反向代理服务器在支持WebSocket方面面临着一些挑战。...如果你还没有安装node.js和npm,你可以通过以下命令安装: 对 Debian/Ubuntu 来说: sudo apt-get install nodejs npm 对 RHEL/CentOS 来说...我们希望NGINX去代理这些请求,通过下面的配置便可实现: map $http_upgrade $connection_upgrade { default upgrade; '' close...$http_upgrade; proxy_set_header Connection "Upgrade"; } } 上面的配置会使NGINX监听8020端口,并把接收到的任何请求传递给后端的

    2.2K10

    Nginx代理WebSocket方法

    但是WebSocket中的握手和HTTP中的握手兼容, 它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的基础设施。...WebSocket协议与HTTP协议不同,但WebSocket握手与HTTP兼容,使用HTTP升级工具将连接从HTTP升级到WebSocket。...用于将连接从HTTP升级到WebSocket的HTTP升级机制使用Upgrade和Connection头。反向代理服务器在支持WebSocket时面临一些挑战。...Nginx开启WebSocket代理的配置方法如下: 1)编辑nginx.conf,在http区域内一定要添加下面配置: map $http_upgrade $connection_upgrade {...其中的规则没有做匹配,因此使用默认的,即 http_upgrade为空字符串的话,那么值就是 close。

    7.6K31

    【前端安全】CVE-2026-44578:Next.js SSRF 漏洞深度解析与修复实战指南

    三个真实场景场景1:云元数据泄露某电商平台的Next.js应用部署在阿里云ECS上,攻击者构造特殊的WebSocket升级请求:展开代码语言:TXTAI代码解释GET/api/chatHTTP/1.1Host...Next.js⭐⭐⭐⭐⭐⭐所有环境首选Nginx拦截WebSocket⭐⭐⭐⭐⭐⭐无法立即升级⭐⭐⭐⭐WAF规则防护⭐⭐⭐⭐⭐有WAF基础设施⭐⭐⭐网络层隔离⭐⭐⭐⭐⭐⭐⭐云原生环境⭐⭐⭐⭐代码层加固⭐...升级请求if($http_upgrade="websocket"){#检查Sec-WebSocket-Protocol是否包含可疑协议if($http_sec_websocket_protocol~*"...//localhost:3000;#❌完全阻止WebSocket升级if($http_upgrade="websocket"){return403;}proxy_set_headerHost$host;...Next.js版本✅如果无法升级,在Vercel/Netlify等平台托管(自动防护)中型项目(企业官网、电商平台):✅短期:Nginx拦截WebSocket升级✅中期:升级到安全版本+回归测试✅长期:

    1.8K11

    WebSocket与Nginx的小秘密

    代理服务器获取流量的方式 Nginx代理的方式 Nginx如何支持WebSocket Nginx配置WebSocket方式 一、代理服务器获取流量的方式 客户端通常都会直接与Web服务器进行通信。...三、Nginx如何支持WebSocket WebSocket 和HTTP虽然是不同协议,但是两者“握手”方式兼容。...Http升级为WebSocket 因为WebSocket协议是一个hop-by-hop协议(此类头部字段只对单次转发有效。...1.map是根据客户端请求中 $http_upgrade 的值来构造改变 $connection_upgrade 的值,即根据变量 $http_upgrade 的值和{} 里规则创建新的变量 $connection_upgrade...2.HTTP的Upgrade协议头机制用于将连接从HTTP连接升级到WebSocket连接,Upgrade机制使用了Upgrade协议头和Connection协议头;为了让Nginx可以将来自客户端的Upgrade

    2K20
    领券