2

我想使用他的 Google 帐户验证我的应用程序的用户,因为这是在多个设备上验证用户的最简单方法。

我的问题是,如果我使用AccountPicker.newChooseAccountIntent意图并且用户选择了一个帐户,我会得到它的电子邮件地址作为结果onActivityResult,这是否已经由 Android 以某种方式验证,以确保用户必须输入正确的密码帐户?

通过这个我想问,是否有可能获得用户无权使用的电子邮件地址。我是否需要进一步检查电子邮件地址以验证它是否属于用户?

我的应用程序是关于用户的短信的,所以我不想让黑客通过选择他们没有密码的帐户来访问这些信息。

4

2 回答 2

1

我的问题是,如果我使用 AccountPicker.newChooseAccountIntent 意图并且用户选择了一个帐户,我会在 onActivityResult 中得到它的电子邮件地址,这是否已经由 Android 以某种方式验证,以确保用户必须输入帐户的正确密码?

是的,当然这意味着该帐户已设置好,即用户在某些时候输入了正确的用户名和密码。

通过这个我想问,是否有可能获得用户无权使用的电子邮件地址。我是否需要进一步检查电子邮件地址以验证它是否属于用户?

不,该电子邮件地址已在该设备上设置(通过输入正确的密码),您无需进一步验证。用户是否仍然可以登录该帐户(如果密码已更改),这是未知的。

我的应用程序是关于用户的短信的,所以我不想让黑客通过选择他们没有密码的帐户来访问这些信息。

如果有人设法闯入您用户的 Google 帐户,那是另一回事,您无法保护您的用户免受此类事情的侵害,他们应该使用安全密码等保护自己。如果您的用户丢失了他/她的手机,或者手机被盗,他/她可能会更改他们的 Google 密码,但该帐户将在他们丢失/被盗的手机上保持设置;新用户将无法登录 GMail,但他将被允许访问您的应用程序。

我想使用他的 Google 帐户验证我的应用程序的用户,因为这是在多个设备上验证用户的最简单方法。

我不会声称这是最简单的方法。首先,Android 用户可能没有 Google 帐户,他没有义务拥有一个。其次,您的应用似乎要访问互联网,以便拥有一个集中的用户数据库。您确定您的网络应用程序足够安全,以至于黑客不会仅使用 Google 帐户的用户名对其进行身份验证吗?如果您想为您的用户提供您的服务的网络界面,那么当然只有 Google 用户名是不够的。

这是您问题的正确答案,但我不太确定它是否能解决您的问题。

顺便说一句,问题中提到的所有内容,并且在此答案中不称为身份验证。你什么都没做,你宁愿试图避免它。

于 2013-10-17T20:32:46.123 回答
0

正在运行的应用程序可以访问其权限允许的设备上的所有服务和功能。

accountmanager 返回的帐户将在电话设置中列出,并且在您检索此列表时不会执行额外的安全检查。

根据您要使用的服务,可能会指示您输入密码。例如,如果您通过 OAuth 链接到特定服务,那么您可能需要输入帐户密码。这实际上取决于您正在访问的服务。

例如,任何可以访问电话的人都可以打开 SMS 应用程序,其方式与从您自己的应用程序完全相同。尽管 SMS 是 SIM 卡的一项功能,但它并不倾向于与特定帐户绑定。

于 2013-10-13T18:47:15.847 回答