1

Dropbox 浏览器客户端在其源代码中存储了应用程序 API 密钥和秘密是一个坏主意,因为任何人都可以使用它们来冒充应用程序。

  1. 但是Dropbox API 密钥编码器呢,如果使用,第三方可以获取原始密钥/秘密吗?
  2. 如果攻击者获得密钥/秘密对,受感染应用程序的用户可能发生的最坏情况是什么?
  3. 在仅浏览器的客户端中处理 Dropbox 安全性的最佳实践是什么,以实现完全安全的实施(如果可能)?

我认为存储在客户端上的应用程序永远不会完全安全,但我仍然想听听比我更有经验的开发人员的意见。

预先感谢您的帮助

4

1 回答 1

1

警告:我不是安全专家。

使用编码器可能会阻止偶然的“攻击者”获取您的应用程序密钥和秘密,但它并不能提供任何真正的安全性。这是使用 JS 库的一行代码,它将编码的密钥转换回未编码的密钥/秘密对:

Dropbox.Util.atob(Dropbox.Util.encodeKey(encodedSecret).split('|')[1]).split('?')

也就是说,这里的安全风险是其他人使用您的应用程序密钥和秘密,这可以说不是世界末日。几乎所有使用 OAuth 的客户端应用程序(在浏览器、桌面和移动平台上)都会遇到这个问题。例如,这是一篇讨论 Twitter 泄露的消费者密钥/秘密的文章:https ://news.ycombinator.com/item?id=5337099 。

我认为暴露您的应用程序密钥和秘密最可能的后果是有人会复制/粘贴您的代码并使用您的凭据。这会误导用户(他们在通过 OAuth 授权时会看到您的应用程序的名称),如果另一个应用程序获取您的密钥并在恶意应用程序中使用它,您的合法应用程序最终可能会受到附带损害。

于 2013-06-19T17:29:50.453 回答