gpt4 book ai didi

api - 构建有效的 REST API 身份验证

转载 作者:行者123 更新时间:2023-12-04 20:40:28 25 4
gpt4 key购买 nike

我已经创建了一个 Web 应用程序,现在我想构建一些 REST API 以使其可由第三方开发人员进行编程。然后,我想用一些流行的语言(JavaScript、PHP、Ruby 等)构建一些客户端库,通过避免他们手动解析每个请求的 JSON 响应,使开发人员能够舒适地使用我的服务。

我以前从未构建过 API 基础架构,所以我有以下问题。
我想跟踪第三方开发人员调用的 API 方法的使用情况。每个开发人员在使用 API 之前都必须进行注册,因此我想将每个请求与注册的开发人员相关联(因此,设置一些特定的使用限制等)。

我想为每个开发人员创建一个唯一的 api key ,他可以在他的所有应用程序中使用它来验证请求。但后来我意识到,如果他决定使用我的 javascript 包装器,那么恶意用户可以查看客户端应用程序页面的源代码并获取他的 api key 。
因此,我决定最好为每个应用程序创建一个唯一的 api key ,并与托管客户端应用程序的域相关联。因此,即使用户捕获了其他人的 key ,那么它在最初注册的域之外也是无用的。
但后来我想:移动应用程序呢?如果不是从网站调用电话会发生什么?如果没有域或 IP 地址不是静态的,我如何通过其域验证 key ?

有小费吗?

谢谢!

最佳答案

马可。
不确定您是否仍在为此工作,但以防万一:如果您的主要目标是跟踪来自不同站点的 API 的使用情况,您可以为每个开发人员分配一个唯一的 API key 。然而,在 JavaScript 的情况下,请求不会来自那个开发者;它将来自最终用户的计算机(假设您使用 JSONP 来绕过 JavaScript 中的同域策略)。您也许可以使用 HTTP_REFERER 强制执行您的域限制(即,您从 1.2.3.4.comcast.net 收到请求,但其 HTTP_REFERER 是 www.developer.com)但显然,一个确定的恶意用户可以欺骗该 REFERER。

另一种选择可能是避免使用 JSONP 并使 JavaScript 库带有本地代理。这样,AJAX 调用将从用户的浏览器转到开发人员的服务器(使用 session cookie/crumb 进行验证),然后开发人员的服务器与您的服务器联系(这很容易受到 IP 限制和/或使用强身份验证)。

希望有帮助。

关于api - 构建有效的 REST API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com