我在阅读本文时使用Azure移动服务创建了我的第一个Android应用程序。
https://azure.microsoft.com/en-us/documentation/articles/mobile-services-android-get-started/
要使用移动服务SDK,客户端需要知道从Azure门户网站获取的应用程序密钥。
在示例应用程序中,应用程序密钥存储在客户端应用程序中。 我的问题是,这样安全吗?如果有人反编译源代码怎么办?
如果这种做法不安全,建议使用此应用程序密钥的方法是什么?
感谢
答案 0 :(得分:1)
让我们假设有人成功获取您的应用程序密钥并可以与您的后端进行交互。
在我看来,你有责任确保身体不能做任何不允许做的事情。 例如,您必须不使您的客户端能够直接向您的数据库发送查询;你应该只让他与一个或多个API交互,这将让他消耗你想要他消耗的资源和/或服务。您必须控制客户有权访问的数据。
如果你能够正确地做到这一点,你将很快理解为什么如果有人通过某种方式找到你的应用程序密钥,它就没什么大不了的:它将无法访问未经授权的数据。
PS:通常,在开发后端API时,您必须始终请记住,您永远不必相信您的客户发送/询问您的内容。因此,您应该首先进行一些检查。 (连接令牌,有效的参数类型等)
答案 1 :(得分:0)
前面的答案是正确的,并且实际上没有办法避免将凭据传递给服务进行身份验证。
但是,如果您有其他类型的敏感凭据,请查看此主题,它会将信息存储在您的移动服务中,然后您可以访问Upload images to Azure Blob storage by using Mobile Services