gpt4 book ai didi

android - SampleSyncAdapter 存储密码明文?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:13 24 4
gpt4 key购买 nike

我正在努力了解 Android AccountManager 和 OAuth。我想做的是不让手机访问密码。 (这就是谷歌的建议:“Be Smart About Security!”)所以我检查了 Google 示例应用程序 SampleSyncAdapter并开始通读代码。然后我在 AuthenticatorActivity 中看到了这种情况:

private AccountManager mAccountManager;
private String mPassword;

/**
* ... Sets the
* AccountAuthenticatorResult which is sent back to the caller. We store the
* authToken that's returned from the server as the 'password' for this
* account - so we're never storing the user's actual password locally.
*
* @param result the confirmCredentials result.
*/
public void handleLogin(View view) {
....
mPassword = mPasswordEdit.getText().toString();
....
Log.d(TAG, "mPassword set to Account:" + mAccountManager.getPassword(account));
}

private void finishLogin(String authToken) {
....
mAccountManager.addAccountExplicitly(account, mPassword, null);
....
}

此日志消息是“mPassword set to Account:test”。因此,当您阅读其余部分时,这在某种程度上是可以理解的

protected String doInBackground(Void... params) {
....
return NetworkUtilities.authenticate(mUsername, mPassword);
....
}

如果密码是 token ,这将不起作用。

此外,我希望其余代码在 Authenticator 中的 getAuthToken() 上以不同方式工作我假设我在某些事情上完全错了,但我只想使用 AccountManager 来存储 OAuth“舞蹈”的结果,以便我可以使用此帐户来验证我的 JSON RESTful 服务。

任何人都可以对此有所启发吗?

最佳答案

从文档中我们可以读到:

It's important to understand that AccountManager is not an encryption service or a keychain. It stores account credentials just as you pass them, in plain text. On most devices, this isn't a particular concern, because it stores them in a database that is only accessible to root. But on a rooted device, the credentials would be readable by anyone with adb access to the device.

因此,据我了解,这是一个滥用单词(密码和 token )的问题。我猜过程如下:

  1. 您要求用户提供登录名和密码。
  2. 在您的应用程序中,您以某种方式将此登录名和密码发送到您的服务器。
  3. 根据这些信息,您的服务器会生成一个 token 并发送回您的应用程序。
  4. AccountManager 以纯文本形式存储此 token ,然后使用此 token 对您的用户进行身份验证。

关于android - SampleSyncAdapter 存储密码明文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com