【发布时间】:2015-01-08 06:10:45
【问题描述】:
在测试/编写我的应用程序时,我已将我的 Oauth 凭据硬编码到我的代码中(用户名、密码、客户端密码和客户端 ID)。如何以安全的方式混淆或存储这些值?如果有人要反编译(de-dex?这是一件事吗?)我的 APK 他们看不到我的凭据吗?
谢谢!
【问题讨论】:
-
您不能在 APK 中以可以提取(通过程序)和无法提取(通过窥视)的方式将密码嵌入 APK。更有趣的问题是:你为什么要这样做?
-
我正在使用 oauth 从我的 php 服务器同步数据。我从来没有让用户通过 oauth 流程,因为同步是在后台处理的。他们从不输入凭据,因此必须将其保存在某个地方。
-
很抱歉,这完全没有意义。同步发生在后台与用户未通过身份验证/授权步骤有关的事实如何?如果您在 APK 中嵌入了一个固定的、不依赖于用户的密码,那么您的服务器及其保存的数据是完全开放的。作为优化,请考虑删除 OAuth 层。这当然不会降低安全性。
-
我不明白你的意思。我当然想要 oauth,因为它可以防止未经授权的人访问我的 API。我确实遵循 oauth 流程,但它发生在后台,不会强制用户使用网站表单登录。我正在使用密码授予身份验证类型,并发送 client_id、client_secret、用户名/电子邮件和密码来请求令牌。获得令牌后,我将令牌与每个 API 调用一起发送。如果我在没有令牌的情况下进行 API 调用,页面会显示拒绝访问。我在问如何在 APK 中安全地包含 client_id、client_secret、用户名、密码
-
我再说一遍:您不能在 APK 中安全地包含密码。每个人都可以拿走。使用具有固定用户 ID 和密码的 OAuth 不会提供任何安全性。
标签: android security oauth oauth-2.0