http-headers 和 http-body 之间有啥安全区别吗?
Posted
技术标签:
【中文标题】http-headers 和 http-body 之间有啥安全区别吗?【英文标题】:Is there any security difference between http-headers and http-body?http-headers 和 http-body 之间有什么安全区别吗? 【发布时间】:2019-05-21 16:40:30 【问题描述】:我要创建一个发布请求并且我正在使用令牌,为什么我必须将令牌放入标头而不是请求正文?我的理解是 body 比 http-headers 更安全吗?
或者将令牌放入标头的唯一原因是为了在我们的 API 中分离并保持多个方法之间的一致性
【问题讨论】:
“更安全”是什么意思? 【参考方案1】:header 对服务器来说更方便。
想象一个 API,您在其中上传文件作为 PUT 的正文 - 如果令牌也在正文中,您必须以某种方式对正文进行编码,以明确什么是令牌以及上传的文件是什么.
如果正文是 JSON,您可以将令牌放在正文旁边(在这种情况下,您不能只是 JSON.parse 它,您需要再次解码它们如何组合在一起)或者您可以将令牌埋在 JSON 中(在这种情况下,您必须先下载整个 JSON 并对其进行解析,然后才能获取令牌)。
可以在下载正文之前访问标头 - 因此,如果恶意代理通过向您发送大量 100Mb 请求对您的服务器执行 DoS 攻击,您可以在收到标头后立即检测到缺乏适当的授权,并关闭连接,而无需下载和分析 100Mb 有效负载。
我看不到在正文中包含令牌的任何好处,而不是在标题中。
【讨论】:
优秀的答案@Amadan【参考方案2】:讨论了与在url vs body
中传递数据相关的安全问题。重点是urls
更频繁地被中间服务器记录,因此敏感信息可能会出现在日志中。
如果我们为headers/body
继续这个想法,我建议如果与正文相比,标题更有可能被记录。至少在我们的应用程序中,我们似乎将请求与标头一起记录。
从密码学的角度来看,它们都等同于一起转移。
【讨论】:
以上是关于http-headers 和 http-body 之间有啥安全区别吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Wordpress 中插入 Last-Modified HTTP-header?