本地主机和生产服务器的 Dropbox API 的应用程序密钥不同?

问题描述 投票:0回答:1

我正在开发一个仅客户端的 Web 应用程序,该应用程序将使用 Dropbox JavaScript SDK 允许用户将其工作存储在 Dropbox 的文件夹中(位于

/Apps/MyAppName
)。 我已经这样做了:

  1. 在 Dropbox App Console 中,我创建了一个应用程序并获得了一个应用程序密钥。
  2. 我在笔记本电脑上启动了一个测试存储库,并成功实现了 Dropbox 身份验证/读/写。 这需要向 Dropbox App Console 添加一个重定向 URL,如
    http://localhost:myport/my-redirect-page.html

现在我想将代码从测试存储库迁移到我的真实项目中,该项目将托管在

myappname.github.io
。 我的客户端 JavaScript 需要应用程序密钥,因此任何查找它的人都可以看到它。 据我了解,我有两个选择:

  1. 从 Dropbox App Console 中删除本地主机重定向 URL。 但在开发过程中测试我自己的应用程序时,我无法再使用 Dropbox 功能。
  2. 保留 Dropbox App Console 设置。 但随后任何人都可以获取我的应用程序密钥,尝试猜测我的重定向页面的名称,并在他们的计算机上构建一个 Dropbox 应用程序,在 Dropbox 看来,它就像是我的应用程序一样。

Google Drive 通过允许每个应用程序生成多个 API 密钥并为每个应用程序分配不同的 URL 来解决这一问题,这样您就可以拥有一个从不共享的开发者应用程序和一个无法与本地主机一起使用的生产应用程序。 据我所知,Dropbox 似乎没有这个功能;每个应用程序只有一个应用程序密钥。

我是否误解了情况和/或安全问题? 如果没有,我唯一的解决方案是制作第二个应用程序仅用于测试吗? 也许最好的答案还会提到我的问题表明我不知道的客户端 Dropbox JavaScript SDK 的任何相关最佳实践。

localhost dropbox dropbox-sdk-js
1个回答
0
投票

Dropbox 不支持在单个应用程序注册中为不同的应用程序密钥注册单独的重定向 URL。一些开发人员使用单个应用程序注册,并在其上设置了所有重定向 URL,而另一些开发人员则注册多个应用程序(例如,一个用于开发,一个用于生产)。

如果您有特殊的安全问题,我建议咨询安全专家。

也就是说,如果您担心有人获取您的应用程序密钥并使用本地主机重定向 URL 冒充您的应用程序,那么创建两个单独的应用程序注册是解决该问题的正确方法。

值得注意的是,应用程序密钥(也称为客户端 ID 或消费者密钥)通常实际上是公开的,发布的应用程序使用的重定向 URL 也是如此。 (这种保护来自于这样一个事实:其他人无法将他们控制的其他重定向 URL 添加到您的应用程序注册中,因为他们无法登录到您的帐户。)至于任何本地主机重定向 URL 本身,任何此类重定向 URL 都是使用有限,因为首先需要本地访问才能访问实践中的内容。

© www.soinside.com 2019 - 2024. All rights reserved.