我可以在客户端进行哪些数据管理 API 调用?

What Data Managment API calls can I have on client side?

我有一个文件层次结构,可以从其中一个用户中心获取文件和文件夹。所有这些调用都在服务器端。这些调用可以驻留在客户端并仍然保持安全吗? None 这些调用从我的 Forge 应用程序中获取了我的客户端机密。澄清一下,您能否回答哪些调用可以是客户端或服务器端的,并且仍然是 100% 安全的。

获取 3 条腿的身份验证(公开客户端机密)- 在客户端安全与否

获取集线器 - 在客户端安全与否

获取项目 - 在客户端安全与否

获取文件夹中的文件 - 在客户端安全与否

获取文件版本 - 在客户端安全与否

下载文件 - 在客户端安全与否

正如您在这篇文章中所读到的:https://developer.autodesk.com/en/docs/oauth/v2/overview/scopes/ Autodesk 说在客户端只有范围 viewables:read 应该可用。

"因为这意味着令牌在 client-side 上公开,请务必确保令牌仅限查看器对 viewables:read 范围的调用,这限制了对最终用户可见输出文件(SVF、PNG 等)的访问。这在 two-legged 上下文中尤为重要,恶意最终用户可以使用无范围令牌在开发人员的平台上采取行动代表并损害开发者的数据。"

我不知道你在构建什么样的应用程序,但你必须问问自己,你的用户能够用你给他们的范围做什么。

由于您在整个帐户而不是特定存储桶上指定了范围,因此您还问自己,有权访问文件夹 "a" 的客户是否也可以看到文件夹 "b" 的内容。

None 的调用在客户端可以是安全的,因为您需要公开具有特定范围的令牌(data:read、data:write 或两者...)。保护您的应用程序的方法是仅从您的服务器执行对 Forge 的所有调用,然后通过受控端点(REST 或 GraphQL)在客户端公开您需要的功能,就像我的 latest article.

通过这种方式,您只公开您 want/you 的数据,并且可以更好地控制数据的用途,例如,您可以限制端点的使用率,从而避免 DDOS 攻击你的钥匙。如果你使用 node.js 就很简单:express-rate-limit.

保护 Web 应用程序是一个非常广泛的主题,您可能想要探索许多领域,但请记住,向客户端公开的所有内容都被认为是不安全的。

希望对您有所帮助