Мне было интересно, есть ли здесь проблема с безопасностью? Любое приложение, использующее умную блокировку Google, будет знать учетные данные пользователей Google, Twitter и т. Д., Верно? взгляните на это руководство Google здесь и в вызове credentialsRetrieved назад у объекта Credential есть имя пользователя и пароль, к которым приложение может получить доступ. Но теперь приложение знает учетные записи пользователей google или twitter? Вот код, о котором я говорю:
private void onCredentialRetrieved(Credential credential) {
String accountType = credential.getAccountType();
if (accountType == null) {
// Sign the user in with information from the Credential.
//right here we have the users login credentials, dont we ?? There exposed.
signInWithPassword(credential.getId(), credential.getPassword());
} else if (accountType.equals(IdentityProviders.GOOGLE)) {
// The user has previously signed in with Google Sign-In. Silently
// sign in the user with the same ID.
// See https://developers.google.com/identity/sign-in/android/
GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.setAccountName(credential.getId())
.build();
OptionalPendingResult<GoogleSignInResult> opr =
Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
// ...
}
}
Итак, я вижу, что объект Credentials может раскрывать пароль пользователя. Я понимаю, что учетные данные необходимы для продолжения процесса входа в систему, но делает ли это выбор пользователя, когда он включает интеллектуальную блокировку?
худший случай: представьте, что пользователь включает интеллектуальную блокировку, и я создаю приложение, которое использует интеллектуальную блокировку. Теперь я получаю доступ к учетным данным пользователей Twitter и делаю вредоносные действия. Как защитить пользователя?