安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题

5.3.3 将内部账户添加到账户管理器 高级话题

原书:Android Application Secure Design/Secure Coding Guidebook

译者:飞龙

协议:CC BY-NC-SA 4.0

5.3.3.1 账户管理和权限的使用

要使用AccountManager类的每种方法,都需要在应用的AndroidManifest.xml中分别声明使用相应的权限。 表 5.3-1 显示了权限和方法的对应关系。

表 5.3-1 账户管理器的函数以及权限

账户管理器提供的函数
权限 方法
AUTHENTICATE_ACCOUNTS(只有由认证器的相同密钥签名的软件包才可以使用。) getPassword()
getUserData()
addAccountExplicitly()
peekAuthToken()
setAuthToken()
setPassword()
setUserData()
renameAccount()
GET_ACCOUNTS getAccounts()
getAccountsByType()
getAccountsByTypeAndFeatures()
addOnAccountsUpdatedListener()
hasFeatures()
MANAGE_ACCOUNTS getAuthTokenByFeatures()
addAccount()
removeAccount()
clearPassword()
updateCredentials()
editProperties()
confirmCredentials()
USE_CREDENTIALS getAuthToken()
blockingGetAuthToken()
MANAGE_ACCOUNTSUSE_CREDENTIALS invalidateAuthToken()

在使用需要AUTHENTICATE_ACCOUNTS权限的方法组的情况下,存在软件包的签名密钥以及权限相关的限制。 具体来说,提供认证器的包的签名密钥,和使用方法的应用的包的签名密钥应该是相同的。 因此,在分发使用方法组的应用时,除了认证器之外,必须使用AUTHENTICATE_ACCOUNTS权限,并且应使用认证器的相同密钥进行签名。

在 Android Studio 的开发阶段,由于固定的调试密钥库可能会被某些 Android Studio 项目共享,开发人员可能只考虑权限而不考虑签名,来实现和测试帐户管理器。 特别是,对于对每个应用使用不同签名密钥的开发人员来说,因为这种限制,在选择用于应用的密钥时要非常小心。 此外,由于AccountManager获得的数据包含敏感信息,因此需要小心处理,来减少泄漏或未授权使用的风险。

5.3.3.2 在 Android 4.0.x 中,用户应用和认证器应用的签名密钥不同时发生的异常

认证令牌获取功能是由开发者密钥签发的用户应用所需的,它不同于认证器应用的签名密钥。通过显示 认证令牌许可证屏幕(GrantCredentialsPermissionActivity),AccountManager验证用户是否授予认证令牌的使用权。但是 Android 4.0.x 的 Android 框架中存在一个错误,只要AccountManager打开此屏幕,就会发生异常并且应用被强制关闭 。 (图5.3-3)。 错误的详细信息,请参阅 https://code.google.com/p/android/issues/detail?id=23421。 这个 bug 在 Android 4.1.x 及更高版本中无法找到。

展开阅读全文

150讲轻松搞定Python网络爬虫

05-16
【为什么学爬虫?】        1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!        2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。   从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑
©️2020 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值