gpt4 book ai didi

security - 是否在 golang 中缓冲了 http.Request.Body?

转载 作者:IT王子 更新时间:2023-10-29 02:16:32 26 4
gpt4 key购买 nike

我正在用 Go 编写一个网络应用程序。我有一个 http.Handler 可以做一些事情并写一个响应。

func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// do some stuff
}

到目前为止,我在 POST 和 GET 请求之间没有做任何不同的事情,这在通常情况下没问题。

但是 POST 有一个 Request.Body

POST 数据会怎样?去缓冲它吗?我的处理程序是立即调用,还是等到 POST 被完全接收?


为了提供一些背景信息,我特别关注 slow loris攻击。

我知道 go 的每个连接开销非常低,但是 POST 大量数据呢?如果我 POST 9Mb 数据,然后一次填入 1 个字节,go 将如何处理?它是否在内存中缓冲了 9Mb?如果我执行 10,000 个这样的请求,那可能是 90Gb 的缓冲 POST 数据。我的服务员不太喜欢那样。

最佳答案

其中涉及一些缓冲,但会立即调用处理程序,由您来读取请求。主体。

至于慢速客户端的资源消耗,特别是像 slowloris 这样的攻击,最简单的解决方案是设置 ReadTimeout在您的服务器上。

关于security - 是否在 golang 中缓冲了 http.Request.Body?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27452835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com