首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护API密钥

保护API密钥
EN

Software Engineering用户
提问于 2014-03-18 12:09:17
回答 1查看 395关注 0票数 2

Iv'e移动了这个,因为它更多的是一个设计问题,而不是代码问题。

在许多应用中,第三方网站/程序可以通过密钥访问网站。

例如,web应用程序宿主应用程序,每个应用程序都有一个唯一的API键。这些密钥被分发给不同的开发人员,以确保他们不会根据合同提出太多的请求。

然而,第三方申请通常以下列形式提出请求:

http://www.thewebapplication.com/my.api?key=TheKey\rmeter=SomeValue

这些都可以从无数的技术(吹奏者,交通窥探者)中看到。更糟糕的是,这些请求可能被放在Javascript中并提供给每个人。如何设计有助于保护客户端API密钥的API系统?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-03-18 12:13:56

不需要实际的密钥,而是需要只有密钥所有者才能提供的东西,但不公开实际的密钥值。

通常的解决方案不是键,而是key+something任意项上单向哈希函数的值。例如,开发人员可以生成一个不超过一次的值(从未超过一次发送的值),将其与键组合在一起,散列结果,然后发送合并的散列+当前值,而不是键。然后,您的应用程序必须检查哈希是否正确,并且在此之前没有使用nonce值(并且没有达到服务限制)。这允许客户端提出他们想要的多少请求(在他们的合同中),但是拦截器不能窃取凭据来从合同中窃取服务。

票数 9
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/232788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档