大家好,我是站长 polarisxu。
今天 Go 官方发布了 Go1.21.3 和 Go 1.20.10,上一版本发布才几天,可见又是安全更新。以下是更新的内容:
- net/http:rapid stream resets can cause excessive work
快速创建请求并立即重置请求的恶意 HTTP/2 客户端可能会导致服务器资源消耗过多。当请求总数以 http2.Server.MaxConcurrentStreams 为界时。设置重置正在进行的请求允许攻击者在现有请求仍在执行时创建新请求。
HTTP/2 服务器现在将同时执行的处理程序 goroutine 的数量绑定到流并发限制。到达限制时的新请求(只有在客户端重置现有的动态请求后才能发生)将排队,直到处理程序退出。如果请求队列太大,服务器将终止连接。
此问题也在 golang.org/x/net/http2 v0.17.0 中得到修复,适用于手动配置 HTTP/2 的用户。
默认流并发限制为每个 HTTP/2 连接 250 个流(请求)。此值可以使用 golang.org/x/net/http2 包进行调整;请参阅 Server.MaxConcurrentStreams 设置和配置服务器函数。
issue 见:<https://github.com/golang/go/issues/63417>。
如果你使用了上述功能,建议升级。
Go 语言中文网准备好了最新安装包:<https://studygolang.com/dl>,你也可以通过你喜欢的方式更新,或使用官方发布的方式试验。
有疑问加站长微信联系(非本文作者)