怎么回事?Go 又發(fā)布版本更新了:Go1.21.3
大家好,我是站長 polarisxu。
今天 Go 官方發(fā)布了 Go1.21.3 和 Go 1.20.10,上一版本發(fā)布才幾天,可見又是安全更新。以下是更新的內(nèi)容:
-
net/http:rapid stream resets can cause excessive work
快速創(chuàng)建請求并立即重置請求的惡意 HTTP/2 客戶端可能會導(dǎo)致服務(wù)器資源消耗過多。當請求總數(shù)以 http2.Server.MaxConcurrentStreams 為界時。設(shè)置重置正在進行的請求允許攻擊者在現(xiàn)有請求仍在執(zhí)行時創(chuàng)建新請求。
HTTP/2 服務(wù)器現(xiàn)在將同時執(zhí)行的處理程序 goroutine 的數(shù)量綁定到流并發(fā)限制。到達限制時的新請求(只有在客戶端重置現(xiàn)有的動態(tài)請求后才能發(fā)生)將排隊,直到處理程序退出。如果請求隊列太大,服務(wù)器將終止連接。
此問題也在 golang.org/x/net/http2 v0.17.0 中得到修復(fù),適用于手動配置 HTTP/2 的用戶。
默認流并發(fā)限制為每個 HTTP/2 連接 250 個流(請求)。此值可以使用 golang.org/x/net/http2 包進行調(diào)整;請參閱 Server.MaxConcurrentStreams 設(shè)置和配置服務(wù)器函數(shù)。
issue 見:https://github.com/golang/go/issues/63417。
如果你使用了上述功能,建議升級。
Go 語言中文網(wǎng)準備好了最新安裝包:https://studygolang.com/dl,你也可以通過你喜歡的方式更新,或使用官方發(fā)布的方式試驗。

推薦閱讀
