智能手机的普及推动了手机app的大量开发、使用。而在使用一个app前,首先都会遇到注册、登录事项以及各种权限的获取。那么,如何保障所用的app是安全的呢?个人隐私是如何受到保护的呢?
App安全问题,不管是对于开发商,还是用户来说,都是至关重要的。开发出来的app是安全的,用户才能放心使用;保证app安全稳定,才能保障个人的隐私权不被侵犯。
App安全问题都有哪些?
一、组件安全问题。
Activity。首先是访问权限控制,组件处理不好会导致你的应用被恶意程序进行恶意的页面调用。作为研发人员,我们可以从以下三点来预防和避免这个问题:
1、私有的Activity不应该被其他应用启动且应该确保相对是安全的;
2、关于Intent的使用要谨慎处理接受的Intent,以及其携带的信息尽量不发送敏感信息,并进行数据校验。
3、设置Android:exported属性,不需要被外部程序调用的组件应该添加android:exported=”false”属性。
Service劫持、拒绝服务。
常见的漏洞有 Java 空指针异常导致拒绝服务和类型转换异常导致的拒绝服务两种。应对 Service 带来的安全问题给大家三点建议:一我们应用在内部尽量使用 Service 设为私有,如果确认这个服务是自己私有的服务,就把它确认为私有,不要作为一个公开的服务;针对 Service 接收到的五数据应该进行校验;内部的Service需要使用签名级别的 protectionle。
二、传输安全。
本地校验用户验证码也非常重要,以后请大家开发中本地的数据校验尽量不要放在本地,尽量放在云端。对于数据的加密,建议所有的App和用户的客户端不要用一个共同的密钥,对于密钥生成的方法尽量根据用户的ID或者一些信息来生成出来,这样避免了大规模密钥的泄露。
三、第三方组件安全。
之前做App应用,在研发后对应用做了很多安全防御。但是大概刚上线不到两天就暴露出漏洞了,究其原因是App项目中用了国内一家非常著名的SDK的推送平台,由于这个平台在发送推送广播的时候没有做数据的校验,导致了黑客可以利用这个推送广播进行伪装,给我发一些数据,Z后导致应用在接收了广播之后,只要我点击这个广播应用就崩溃。因此我们除了做好自身应用的安全以外,要保证所引用的第三方,或者合作伙伴也是安全的。也就是说安全是一个团队性的。
四、Webview的代码执行漏洞。
安卓存在一个非常著名的远程代码执行的漏洞,由于我们程序没有正确地使用,大家可能在做GS和Java户调的时候会遇到这个问题,远程攻击者可以通过Java分设接口执行一些恶意的Java方法,Z终导致App在使用Webview的时候遭到攻击。我们是可以做一些应对的,安卓系统通过Webview通过一个注册来调用Java功能,攻击者利用反射对他进行攻击,其实谷歌也看到了这个问题,因为这个问题毕竟比较大、也比较广,所以谷歌在API Level17以后这个问题就得到了遏制,对于小于17,或者17以下的能不使用就不使用,如果真的要使用可以增加过滤,对数据的传输做一下校验。
五、应用安全层。
可以对代码进行一些混淆,如配置,如果觉得这还不够,也可以使用一些第三方的工具,比如APK文件。对于更加讲究安全性的经营类的企业,可以选择加固,使用脱壳程序,Z后形成一个新的Dex包,Z后完成对一个程序的加固。
这么多app,作为普通用户使用者还是没法对app做到安全检测的,那么应该如何去防止个人信息因为app遭到泄露呢?
如何保障app使用的安全?
1、首先建议在正规的渠道去下载app,防止下载到的app被修改编译过,不是原版应用;
2、如果没特殊要求不建议将手机进行root处理;
3、在安装app看好其要求的开放权限,没有必要的权限可进行关闭,如定位、读取手机联系人等;
4、可在手机上安装合适的杀毒软件,定期进行查杀并清理没用的软件、程序包等;
5、定期升级相关app,修复老版本存在的bug。
本文部分转载自:https://blog.csdn.net/markkr133/java/article/details/80545689