【问题标题】:Azure Storage Android API, is it safe?Azure Storage Android API,它安全吗?
【发布时间】:2014-12-04 21:24:29
【问题描述】:

我想使用 Microsoft Azure Storage Android API 上传手机摄像头拍摄的图像。 这是这样的: https://github.com/azure/azure-storage-android

这是我的问题:帐户名称和密钥存储在应用程序内的字符串中,因此任何人都可以对其进行反编译,获取这些凭据,然后上传大量数据,例如,这将花费我的钱。

那么在安卓应用上使用这个安全吗? 我还有哪些其他选择?

【问题讨论】:

    标签: android security azure azure-storage


    【解决方案1】:

    不应将密钥存储在您的应用程序中。你是对的,有人可以反编译你的应用程序并获取密钥。此外,如果您因任何原因不得不更改帐户密钥,您的用户将需要再次下载您的应用程序。

    当有人需要上传图片时,您应该使用Shared Access Signature (SAS)。您可以使用 Azure 移动服务或编写自己的 Web 服务来按需获取 SAS(具有写入权限),并在您的应用程序中使用它来将图像上传到您的存储帐户中。

    【讨论】:

      【解决方案2】:

      你是对的。如果您将凭据发送到应用中的 Azure 存储帐户,那么任何人都拥有凭据并且可以用它做任何事情。

      通常您会创建一个中间 Web 服务(例如托管在 Azure 网站上),该服务访问 Azure 存储并限制每个用户可以上传的数据量。该应用仅与您的 Web 服务通信,因此不需要知道存储帐户的凭据。

      显然,您需要在 Web 服务中内置某种用户管理功能,例如自定义帐户、Google 登录(大多数 Android 用户都有 Google 帐户)、OpenID、OAuth、...

      【讨论】:

      • 虽然我同意需要中间 Web 服务,但我不同意它应该充当移动应用程序和存储之间的网关。想象一个场景,大量用户使用应用程序上传图像。在这种情况下,Web 服务将成为瓶颈。我的建议(如我的回答中所述)是使用此服务(或 Azure 移动服务)来创建共享访问签名并让应用程序直接与存储交互。
      • 是的,你是对的,SAS 是一个更好的解决方案。我想指出的重要一点是需要某种中间网络服务。
      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 2017-06-19
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2014-08-17
      • 1970-01-01
      相关资源
      最近更新 更多