【问题标题】:Is ID paired with token redundant in this case?在这种情况下,ID 是否与令牌冗余配对?
【发布时间】:2020-02-08 15:27:21
【问题描述】:

我正在做一个一年前做的项目,我实际上忘记了我当时的想法。

我的服务器和我客户的服务器之间通过 HTTP POST 进行通信。

我的服务器发送一个列表告诉客户的服务器我需要哪些数据,每个请求的数据都有一个唯一的 ID,客户的服务器发回一个 ID 列表,数据对。

例如:我的服务器发送

[{id: 1001, input: 40.2},
 {id: 2033, input: 326.4},
 {id: 4212, input: 67.12},
 {id: 9551, input: 5.3}]

我客户的服务器响应

[{id: 1001, output: 3144},
 {id: 2033, output: 4362},
 {id: 4212, output: 6428},
 {id: 9551, output: 2319}]

我客户的服务器可以响应一个空列表,然后稍后通过另一个 API 发送数据。

为防止客户的服务器收到虚假请求,我的服务器将发送key 连同列表。客户可以在控制台页面中看到该密钥并将其设置到他们的服务器中。

为防止我们的服务器收到虚假响应或虚假数据提交,客户需要将其Customer IDAPI key 连同响应列表一起发送。他们可以在控制台页面中看到它。

奇怪的是,列表条目不仅有id,而且还有一个随机生成的token。所以列表实际上是这样的。

我的服务器发送

[{id: 1001, token: dgkldjktle34512fas, input: 40.2},
 {id: 2033, token: gt23k4652bkjte24ks, input: 326.4},
 {id: 4212, token: 35wfvjnsl34342ldsa, input: 67.12},
 {id: 9551, token: eftrlh44yw3.dflk3r, input: 5.3}]

我客户的服务器响应

[{id: 1001, token: dgkldjktle34512fas, output: 3144},
 {id: 2033, token: gt23k4652bkjte24ks, output: 4362},
 {id: 4212, token: 35wfvjnsl34342ldsa, output: 6428},
 {id: 9551, token: eftrlh44yw3.dflk3r, output: 2319}]

如果响应数据有错误的令牌,我的服务器将不接受它。

但现在我很困惑,为什么我需要列表中的令牌?

API key 检查已防止虚假响应或虚假数据提交。

这是无用的冗余吗?还是有什么我以前想过,现在忘记了的场景?

【问题讨论】:

    标签: security server


    【解决方案1】:

    令牌会阻止您在没有实际请求任何内容的情况下接收响应,有点类似于 CSRF。请注意,尽管您可以改进发送密钥以进行身份​​验证的方案。目前,如果我理解正确,中间攻击者(可能是代理,即使在 https (tls) 的情况下,这始终应该是)可以更改值,而共享密钥可用于应用消息身份验证(例如.HMAC) 以确保数据确实是在任一方向发送的。

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多