加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – REST Web服务和API密钥

发布时间:2020-12-16 01:36:33 所属栏目:百科 来源:网络整理
导读:我有一个Web服务,我正在向用户提供进入我的应用程序数据库并获取一些信息.用户必须注册API密钥并在提出请求时提供.一切正常,但我如何检查注册密钥的用户是否实际提出请求而不是他可能已经提供密钥的其他人? 在过去的两天里,我一直在考虑提出一个解决方案,但
我有一个Web服务,我正在向用户提供进入我的应用程序数据库并获取一些信息.用户必须注册API密钥并在提出请求时提供.一切正常,但我如何检查注册密钥的用户是否实际提出请求而不是他可能已经提供密钥的其他人?

在过去的两天里,我一直在考虑提出一个解决方案,但到目前为止还没有.

您需要使用已签名的请求.基本上它的工作原理如下:

>您为用户提供API密钥和“秘密”(随机字符串),只有您和客户知道.
>每当他们提出请求时,他们都会向其添加“签名”参数.这个签名基本上是请求参数的散列,API密钥的其他参数(见下文)的秘密.
>既然你也知道这个秘密,你可以验证签名是否正确.

为了避免重放攻击,您还可以在混合中添加随机数和时间戳. nonce只是一个必须在每个请求上由客户端递增的数字.当您收到请求时,检查您之前是否已收到此nonce / timestamp.如果您这样做,则拒绝该请求(因为它很可能是重播攻击).如果没有,则将nonce / timestamp存储在数据库中,以便稍后查找.

这或多或少是在OAuth中签署请求的方式.请查看链接中的示例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读