1.外部数据安全外部存储通常是指将数据存储在设备的SD卡上。外部存储是一种不安全的数据存储机制,因为存储在SD卡上的文件默认提供给他人读取。设备上安装的其他应用只需要在其AndroidMenifest.xml中声明如下语句即可。那么这个app对SD卡有完全的读写权限,也就是说一个app放到SD上的任何数据card两者都可以被其他应用程序读写,因此将重要数据存储在SD卡上存在相当大的安全隐患。2.内部数据安全内部数据存储主要分为两种方式:SharedPreference存储和File存储。内部数据存储的安全问题主要关注的是创建的模式和写入文件的内容。SharedPreference存储是一种轻量级的数据存储方式。它的本质是存储基于XML文件的Key-Value键值对数据,通常用于存储一些简单的配置信息。文件存储常被称为文件(I/O)存储方式,常用于存储大量数据。内部数据存储通常更安全,因为它们可以受到Android系统安全机制的保护。Android的安全机制本质上就是Linux的安全机制。系统会为Android系统上运行的每一个App创建一个进程,并为该进程分配一个UID。Android系统会为每一个App创建一个特定的目录/data/data/app_package_name。该目录的权限只与UID相关,只有与该UID关联的用户才有该目录相关的权限。因此,在相应目录下生成的SharedPreference文件和File文件如果创建方式正确,将受到Android系统权限机制的保护。正确的创建方法是指文件的创建方式。SharedPreference和文件创建主要有三种模式。MODE_PRIVATE:默认的创建模式,进程UID对应的用户将对该文件拥有完全控制权,而其他UID用户将没有读/写文件的权限。undefined③调用者声明(3)暴露组件的代码检查Android提供了各种API来在运行时检查、执行、授予和撤销权限。这些API是android.content.Context类的一部分,它提供有关应用程序环境的全局信息。网络数据通信可能面临的攻击是网络流量嗅探。如果在网络上上传未加密的数据,网络嗅探可以拦截数据,ARP攻击可以很容易地嗅出帐号、密码等。使用HTTPS比较常见,可以有效防止数据泄露,防止第三方拦截应用程序通信数据。Android中实现HTTPS基本上有两种方式,一种是不验证证书,另一种是有验证证书(防止钓鱼)。第二种方式实现起来比较复杂,需要将cer证书转换为BKS类型。这种方式也只能简单地防钓鱼,不能有效防钓鱼。防止钓鱼最终还是要靠用户通过正规渠道辨别和下载应用。应用程序证书也可用于验证客户端。使用证书来验证客户端是不合适的。如果您使用证书来验证客户端,则证书必须存储在应用程序中或在使用时下载。Android应用都是一个APK文件,获取方便如果下载里面的文件,通过下载地址获取比较容易。如果要验证客户端,最好使用so文件来封装数据。