作为一个开发人员,必须具备安全意识,掌握基础的安全知识,为打造更加安全的应用做出努力。本文浅谈Android客户端的安全问题,涉及组件、WebView、存储、传输、日志、混淆、应用加固等安全漏洞及防护策略,运用更加合理的配置与防护措施来提高应用的安全级别。
二、组件安全:
规范安卓标准组件(Activity、Service、Receiver、Provider)的访问权限。
这里提到的组件访问权限主要是指跨应用的进程间通信(IPC,Inter-Process Communication),开发者可以限定应用内的组件是否允许被其他应用调起,或接收来自外部应用的数据,或者访问我们的数据。并且必须对来自外部应用的数据做校验处理,避免来自外部攻击。如恶意调用组件、广播数据攻击、恶意访问数据等等。
- 设置权限开放属性:android:exported=[“true” | “false”]
exported属性为四大组件共有属性,其中含义大同小异。默认值由其包含 与否决定。若未包含,默认为“false”,若存在至少一个,则默认值为“true”。
在Activity中:
表示是否允许外部应用组件启动。若为“false”,则 Activity 只能由同一应用或同一用户 ID 的不同应用启动。
在Service中:
表示是否允许外部应用组件调用服务或与其进行交互。若为“false”,则 Activity 只能由同一应用或同一用户 ID 的不同应用启动。
在Receiver中:
表示是否可以接收来自其应