开发者社区> apachecn_飞龙> 正文

安卓应用安全指南 4.6.2 处理文件 规则书

简介: 安卓应用安全指南 4.6.2 处理文件 规则书 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 遵循以下规则: 4.6.2.1 文件原则上必须创建为私有(必需) 如“4.6 处理文件”和“4.6.1.3 使用公共读/写文件”所述,无论要存储的信息的内容如何,原则上都应该将文件设置为私有。
+关注继续查看

安卓应用安全指南 4.6.2 处理文件 规则书

原书:Android Application Secure Design/Secure Coding Guidebook

译者:飞龙

协议:CC BY-NC-SA 4.0

遵循以下规则:

4.6.2.1 文件原则上必须创建为私有(必需)

如“4.6 处理文件”和“4.6.1.3 使用公共读/写文件”所述,无论要存储的信息的内容如何,原则上都应该将文件设置为私有。 从 Android 安全角度来看,交换信息及其访问控制应该在 Android 系统中完成,如内容供应器和服务,并且如果存在不可能的因素,则应该考虑由文件访问权限作为替代方法。

请参阅每个文件类型的示例代码和以下规则条目。

4.6.2.2 禁止创建允许来自其他应用的读写访问的文件(必需)

如“4.6.1.3 使用公共读/写文件”中所述,当允许其他应用读取/写入文件时,存储在文件中的信息无法控制。 因此,从安全和功能/设计的角度来看,不应该用公共读/写文件共享信息。

4.6.2.3 使用存储在外部存储器如 SD 卡)的文件,应该尽可能最小(必需)

如“4.6.1.4 使用外部存储器(公共读写)文件”中所述,出于安全和功能的考虑,将文件存储在外部存储器(如 SD 卡)中,会导致潜在的问题。 另一方面,与应用目录相比,SD 卡可以处理更大范围的文件,并且这是可以用于将数据带出到应用之外的唯一存储器。 所以,可能有很多情况下必须使用它,取决于应用的规范。

将文件存储在外部存储器中时,考虑到未指定的大量应用和用户可以读/写/删除文件,所以有必要考虑以下各点以及示例代码中提及的要点,来设计应用。

  • 原则上,敏感信息不应保存在外部存储器的文件中。
  • 将敏感信息保存在外部存储器的文件中时,应将其加密。
  • 将文件保存在外部存储器时,如果被其他应用或用户篡改,将会出现问题,应该用电子签名保存。
  • 当读入外部存储器中的文件时,请在验证读取的数据安全性后使用数据。
  • 应该这样设计应用,假设外部存储器中的文件始终可以被删除。

请参考“4.6.2.4 应用应该在考虑文件范围的情况下设计”。

4.6.2.4 应用应该在考虑文件范围的情况下设计(必需)

保存在应用目录中的数据,被以下用户操作删除。 它与应用的范围是一致的,并且与应用的范围相比,它的独特之处在于它比应用的范围小。

  • 卸载应用
  • 删除每个应用的数据和缓存(设置=>应用=>选择目标应用)

保存在外部存储器中的文件,如 SD 卡,文件的范围比应用的范围长。 另外,还需要考虑以下情况。

  • 文件由用户删除
  • 取出/替换/取消挂载 SD 卡
  • 文件由恶意软件删除

如上所述,由于文件范围取决于文件的保存位置而有所不同,不仅从保护敏感信息的角度,而且从实现应用的正确行为的角度,有必要选择文件保存位置。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【玩转Redis面试第3讲】一次性将Redis RDB持久化和AOF持久化讲透
【玩转Redis面试第3讲】一次性将Redis RDB持久化和AOF持久化讲透
5 0
从一手资料学习--Spring Security与OAuth(二)
上回我们聊到,既然Spring官网也有提到,要学习Spring Security OAuth相关的知识,最好先学习OAuth2.0相关的知识,而官网中OAuth 2.0 Framework的链接地址对应的就是rfc6749的文档,结构是这样的
4 0
从一手资料学习--Spring Security与OAuth(一)
不知道大家对于上面的几个问题被问及的时候会心里发慌。强哥发现,大多数小伙伴对于一些工作中使用较少的知识,或者说是平常都在用,但是不需要自己去实现的知识,主动学习的积极性都比较低。
3 0
入门MySQL——备份与恢复
前面几篇文章为大家介绍了 MySQL 各种语句语法的用法及用户权限相关知识。本篇文章将主要讲解 MySQL 数据库数据备份与恢复相关知识,主要聚焦于逻辑备份,介绍mysqldump工具的使用以及恢复方法。
4 0
【玩转Redis面试第2讲】面试官再问Redis事务把这篇文章扔给他
【玩转Redis面试第2讲】面试官再问Redis事务把这篇文章扔给他
3 0
MQ是如何保证消息不丢失的,你这样回答面试官一定说I Want U
MQ是如何保证消息不丢失的,你这样回答面试官一定说I Want U
4 0
带你认识MySQL sys schema
MySQL 5.7中引入了一个新的sys schema,sys是一个MySQL自带的系统库,在安装MySQL 5.7以后的版本,使用mysqld进行初始化时,会自动创建sys库。 sys库里面的表、视图、函数、存储过程可以使我们更方便、快捷的了解到MySQL的一些信息,比如哪些语句使用了临时表、哪个SQL没有使用索引、哪个schema中有冗余索引、查找使用全表扫描的SQL、查找用户占用的IO等,sys库里这些视图中的数据,大多是从performance_schema里面获得的。目标是把performance_schema的复杂度降低,让我们更快的了解DB的运行情况。
3 0
万字警告 - k8s入门,理应Pod先行!
本文主要介绍 kubernetes中pod的使用
4 0
SpringBoot整合ShardingSphere实现分表分库&读写分离&读写分离+数据库分表
SpringBoot整合ShardingSphere实现分表分库&读写分离&读写分离+数据库分表
3 0
+关注
apachecn_飞龙
Github:@wizardforcel 简书:@ApacheCN_飞龙 微博:@龙雀 CSDN:@wizardforcel ApacheCN 官网:apachecn.org 机器学习交流群:629470233
719
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载