【问题标题】: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 中分离并保持多个方法之间的一致性

【问题讨论】:

  • “更安全”是什么意思?

标签: rest http https http-headers


【解决方案1】:

header 对服务器来说更方便。

想象一个 API,您在其中上传文件作为 PUT 的正文 - 如果令牌也在正文中,您必须以某种方式对正文进行编码,以明确什么是令牌以及上传的文件是什么.

如果正文是 JSON,您可以将令牌放在正文旁边(在这种情况下,您不能只是 JSON.parse 它,您需要再次解码它们如何组合在一起)或者您可以将令牌埋在 JSON 中(在这种情况下,您必须先下载整个 JSON 并对其进行解析,然后才能获取令牌)。

可以在下载正文之前访问标头 - 因此,如果恶意代理通过向您发送大量 100Mb 请求对您的服务器执行 DoS 攻击,您可以在收到标头后立即检测到缺乏适当的授权,并关闭连接,而无需下载和分析 100Mb 有效负载。

我看不到在正文中包含令牌的任何好处,而不是在标题中。

【讨论】:

  • 优秀的答案@Amadan
【解决方案2】:

讨论了与在url vs body 中传递数据相关的安全问题。重点是urls 更频繁地被中间服务器记录,因此敏感信息可能会出现在日志中。

如果我们为headers/body 继续这个想法,我建议如果与正文相比,标题更有可能被记录。至少在我们的应用程序中,我们似乎将请求与标头一起记录。

从密码学的角度来看,它们都等同于一起转移。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2011-01-06
    • 1970-01-01
    • 2011-06-03
    • 2015-02-09
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多