HTTP头和HTTP正文之间有安全差异吗?

15

我将创建一个帖子请求,我正在使用令牌,为什么我必须将令牌放入标头而不是请求正文中?我的理解是主体比HTTP标头更安全,是吗?

或者将令牌放入标头的唯一原因是在我们的API中分离和维护多个方法之间的一致性。


你的意思是什么,“更安全”? - Amadan
2个回答

32

在服务器端上,头信息更加方便。

想象一下一个API,您需要将文件作为PUT请求的主体上传——如果令牌也在主体中,您必须以某种方式对主体进行编码,以使标明哪个部分是令牌,哪个是上传的文件。

如果主体是JSON格式,可以将令牌放在主体旁边(在这种情况下,您无法仅使用JSON.parse解析它,您需要再次解码以确定它们如何配合),或者将令牌嵌入JSON中(在这种情况下,您必须下载整个JSON并解析它,然后才能获取到令牌)。

可以在下载主体之前访问头信息。因此,如果恶意代理人通过向您发送大量100MB请求来对您的服务器执行DoS攻击,则可以在接收到头信息时检测到缺少适当的授权,并关闭连接,而无需下载和分析100MB负载。

我看不出在主体中放置令牌与放在头信息中相比有任何益处。


优秀的回答 @Amadan - Lazarus Thurston

8

关于在urlbody中传递数据的安全问题进行了讨论。主要观点是urls更容易被中间服务器记录,因此敏感信息可能会出现在日志中。

如果我们将这个想法延伸到headers/body,我建议与body相比,headers更容易被记录。至少在我们的应用程序中,我们似乎会记录请求和headers。

从密码学的角度来看,它们都是平等的,因为它们一起传输。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接