【问题标题】:Is HTTP Content-Length Header Safe to Trust?HTTP Content-Length 标头是否可以安全信任?
【发布时间】:2018-09-30 16:38:02
【问题描述】:

信任Content-Length HTTP 标头是否安全?根据MDN docs,它是Forbidden header name。如果我转到that page,它会显示以下内容。

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

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

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

【问题讨论】:

  • 信任什么,被谁欺骗了?你担心的场景是什么?
  • @Joni 相信它是准确的并且符合规范。例如,我不希望收到实际内容长度为 1000 的请求,例如标题 Content-Length 为 300。在这种情况下,它会被客户端或向我的后端发出请求的任何人欺骗。

标签: http http-headers httprequest


【解决方案1】:

鉴于您描述的场景,是的,客户端可能设置了不正确的 Content-Length。不能保证它是正确的。

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

【讨论】:

  • 不是反过来吗?
猜你喜欢
  • 2013-04-06
  • 1970-01-01
  • 2017-01-22
  • 2011-02-15
  • 2014-07-07
  • 2021-01-08
  • 2023-02-24
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多