提供给第三方的API的签名验证问题

当前API使用Bear Token进行验证,存在安全隐患,如第三方渠道可冒充客户。文章探讨了签名验证的重要性,提出注册生成clientID和SecretKey,使用Hmac进行签名计算,结合时间戳防止重放攻击,并通过限制散列值的有效期来进一步增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前的状况

公司目前有若干的第三方API, 这些API是供第三方的一些渠道对接,让渠道可以访问到一些公司的业务信息,他们是这么设计的。

  1. 使用Bear Token 作为第三方访问API的时候的唯一验证方式, 当第三方需要访问公司的API的时候,任何请求需要在请求头里面添加 Authorization:头信息, 用来提供Token给服务器 从而验证当前的请求是否有效。
  2. 有一些操作我们想要回避第三方渠道, 如客户需要提交一些信息给服务器 第三方渠道不需要知道这些信息的时候, 我们会让访问第三方渠道的客户跳转到一个单独页面, 当然这个页面也需要有单独的token, 获取这个token的时候需要第三方渠道用带有 Authorization token的请求 去访问对应的生成token的API, 从而可以授权客户访问单独的页面和我方做交互
  3. 这些token 作为第三方渠道是完全可以看得到的,也就是说第三方渠道是可以冒充任何客户来和我们公司做交互。 但是君子协议说他们不会这么做。 这样出现的任何客户单独和我们做交互的页面的信息的丢失 第三方渠道是不需要负责任的。
  4. token并没有任何验证机制, 生成token 只是生成随机的固定长度的二进制数据, 然后转换为16进制, 然后做了一个有效时间验证保证token在6个小时内有效。没有任何的签名, 防重放攻击验证。

应该如何做签名验证

网上大概查了查 结合之前对接亚马逊 MWS接口的时候的经验,列一下一般的签名验证方法。

  1. 任何和API做对接的第三方都需要进行注册步骤, 通过注册后API会给第三方生成一个clientID 和一个SecketKey。 clientID是公开的, 用来唯一表示一个第三方渠道, 而secretKey是保密的只有第三方渠道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值