【问题标题】:How to develop secure Dropbox browser client?如何开发安全的 Dropbox 浏览器客户端?
【发布时间】:2013-06-19 16:11:43
【问题描述】:

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

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

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

提前感谢您的帮助

【问题讨论】:

    标签: javascript security dropbox


    【解决方案1】:

    警告:我不是安全专家。

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

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

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

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

    【讨论】:

    • 安全风险在 Twitter 和 Dropbox 之间没有可比性,用户存储他的潜在敏感数据。登录到已经授权操作您的数据的错误应用程序可能会产生严重后果,而登录到虚假 Twitter 客户端则没什么大不了的。
    • 同意。 (更多字符以满足最低字符要求。)
    猜你喜欢
    • 2019-03-21
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多