gpt4 book ai didi

javascript - 使用客户端 token 保护 REST API 调用

转载 作者:搜寻专家 更新时间:2023-11-01 00:09:30 25 4
gpt4 key购买 nike

我有一个 node.js REST API,我想将 POST/PUT/DELETE 调用限制到预定义的“源”列表(我不拥有代码的 Web 应用程序)。

我看到实现此目的的唯一方法是在客户端放置一个 token (类似于 JS 文件中的 Google Analytics)但我不知道如何保护它,因为 token 将可以在静态文件中访问。

我应该使用什么策略? JWT 和 OAuth2 似乎没有指出,因为它需要首先进行用户身份验证,但我要验证的不是用户而是 webapps。

最佳答案

你的问题有点不清楚。您的意思可能是 (a) 您想要强烈鼓励用户使用该应用程序并防止其他代码恶意让您的用户执行操作,或者 (b) 您想要绝对阻止您的用户使用其他代码访问你的服务器。

第一个选项是可行的,而且确实是一个很好的主意。根据 Internet 的工作方式,第二个是不可能的。

首先,不可能。从本质上讲,客户端代码的存在是为了让您的客户的生活更轻松。真正的工作总是在服务器端完成——即使这只意味着验证数据并将其存储在数据库中。您的客户端将始终能够看到他们发送的所有 HTTP 请求:这就是 HTTP 的工作方式。你不能向他们隐藏信息。即使您动态生成 token (见下文),您也无法阻止它们在其他地方使用。他们始终可以构建自定义 HTTP 请求,这意味着如果他们真的非常想要,最终他们可以完全放弃您的应用程序。将您的客户端代码视为只是让他们更容易执行 HTTP 请求,并放弃任何防止他们“做错事”的想法!

更好的选择是 CSRF 保护,它可以为您的服务器和客户端提供最好的保护。这意味着在他们第一次登录时向您的客户发送生成的 token ,并在他们根据每个请求发送 token 时对其进行验证(通过查找或解密)。这是 JWT 的基础,它是一个相当古老的验证系统的完美实现。

关于javascript - 使用客户端 token 保护 REST API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40991004/

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