在这种情况下,ID 是不是与令牌冗余配对?
Posted
技术标签:
【中文标题】在这种情况下,ID 是不是与令牌冗余配对?【英文标题】: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 ID
和API 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
检查已防止虚假响应或虚假数据提交。
这是无用的冗余吗?还是有什么我以前想过,现在忘记了的场景?
【问题讨论】:
【参考方案1】:令牌会阻止您在没有实际请求任何内容的情况下接收响应,有点类似于 CSRF。请注意,尽管您可以改进发送密钥以进行身份验证的方案。目前,如果我理解正确,中间攻击者(可能是代理,即使在 https (tls) 的情况下,这始终应该是)可以更改值,而共享密钥可用于应用消息身份验证(例如.HMAC) 以确保数据确实是在任一方向发送的。
【讨论】:
以上是关于在这种情况下,ID 是不是与令牌冗余配对?的主要内容,如果未能解决你的问题,请参考以下文章