HTTP 内容长度标头值得信任吗?

Cha*_*ish 9 http httprequest http-headers

信任Content-LengthHTTP 标头是否安全?根据MDN 文档,它是一个Forbidden header name. 如果我转到该页面,它会显示以下内容。

禁止修改此类标头,因为用户代理保留对它们的完全控制。

但是,如果您控制用户代理,是否仍然有办法欺骗这些值?

我只是想弄清楚信任该页面上的这些标头有多安全 Forbidden header name,以及它们是否能够被欺骗。

Eve*_*ert 5

鉴于您描述的场景,是的,客户端可能会设置不正确的内容长度。无法保证它是正确的。

如果Content-Length太大,服务器可能会等待并超时以获取剩余的数据。如果它太小,服务器可能会在整个主体进入之前切断 TCP 连接,或者在Connection: Keep-Alive服务器可能假设客户端启动了另一个 HTTP 请求的情况下,会感到困惑并发送错误的请求响应。