如何在不登录的情况下保护 REST API



我正在构建一个服务,提供一些将在多个网站中使用的只读信息,一些带有登录名,一些带有公共功能。

我不想将 api 公开到任何网站,所以我不确定我应该使用哪种身份验证方法。我有一些想法,但我不想重新发明轮子。

我在想让这个站点的后端使用秘密/密码/private_key向我的服务器请求令牌,然后他们应该将此令牌传递给他们的前端,并在每次请求时将其传递给我的服务器(他们的前端将直接与我的 API 通信(

如果您的网站可以访问您的未经身份验证的公共 API,则无法阻止其他人使用此 API 并窃取您的数据。

您可以阻止其他网站直接从您的 API 获取数据(不使用 CORS 标头(,但如果您的网站公开显示来自您的 API 的数据,则假设其他人都可以。

如果您的业务依赖于不可能,请重新考虑您的业务模式。如果数据出现在随机用户的屏幕上,则意味着用户可以获取该数据并将其放在其他地方。这就是网络的运作方式。

我完全同意@Evert。话虽如此,您可以使用一些方法使某些人而不是所有人都可以访问公共 API。它不会是完美的,在大多数情况下,使用某种 API 令牌将是一个更好的解决方案,但它可能适合您的需求。

首先,您可以使用防火墙规则并仅允许来自某些IP的连接。简单,只要源 IP 不更改即可工作。

您可以使用的另一个想法:查看YouTube以及私人视频的工作原理。URL 中有一个机密。有了足够的熵,你可以通过这种方式构建可公开访问的URL,可以用来与朋友分享一个简单的链接,但其他人很难猜到。这种技术有缺点。您只能允许人们以这种方式分享他们的内容,因为他们始终有权通过将链接粘贴到他们的 tweeter/yt/other 中来公开链接。

相关内容

  • 没有找到相关文章

最新更新