如何开发安全的Dropbox浏览器客户端?

时间:2013-06-19 16:11:44

标签: javascript security dropbox

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

  1. 但是Dropbox API key encoder如果使用的话可以了 第三方获得原始密钥/秘密?
  2. 如果攻击者获得密钥/密钥对,那么最坏的情况是什么 受损应用程序的用户可能遇到的情况?
  3. 处理Dropbox安全性的最佳做法是什么? 浏览器只有客户端才能拥有完全安全 实施(如果可能的话)?
  4. 我认为存储在客户端上的应用程序永远不会完全安全,但我仍然希望听到比我更有经验的开发人员。

    提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

警告:我不是安全专家。

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

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

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

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