阿里Android开发手册笔记---安全

1、使用 PendingIntent 时,禁止使用空 intent,同时禁止使用隐式 Intent

2、】将 android:allowbackup 属性设置为 false,防止 adb backup 导出数据

3、在实现的 HostnameVerifier 子类中,需要使用 verify 函数效验服务器主机

名的合法性,否则会导致恶意程序利用中间人攻击绕过主机名效验

4、利用 X509TrustManager 子类中的 checkServerTrusted 函数效验服务器端

证书的合法性

5、META-INF 目录中不能包含如.apk,.odex,.so 等敏感文件,该文件夹没有经

过签名,容易被恶意替换

6、Receiver/Provider 不能在毫无权限控制的情况下,将 android:export 设置

为 true

7、数据存储在 Sqlite 或者轻量级存储需要对数据进行加密,取出来的时候进

行解密。

8、阻止 webview 通过 file:schema 方式访问本地敏感数据

9、不要广播敏感信息,只能在本应用使用 LocalBroadcast,避免被别的应用

收到,或者 setPackage 做限制

10、应用发布前确保 android:debuggable 属性设置为 false。

11、使用 Intent Scheme URL 需要做过滤

12、密钥加密存储或者经过变形处理后用于加解密运算,切勿硬编码到代码中

13、除非 min API level >=17,请注意 addJavascriptInterface 的使用

14、Android APP 在 HTTPS 通信中,验证策略需要改成严格模式。说明:Android 
APP 在 HTTPS 通信中,使用 ALLOW_ALL_HOSTNAME_VERIFIER,表示允许和
所有的 HOST 建立 SSL 通信,这会存在中间人攻击的风险,最终导致敏感信息可能

会被劫持,以及其他形式的攻击。

15、Android5.0 以后安全性要求 较高的应用 应该使 用 window.setFlag

(LayoutParam.FLAG_SECURE) 禁止录屏

16、开放的 activity/service/receiver 等需要对传入的 intent 做合法性校验

17、Android WebView 组件加载网页发生证书认证错误时,采用默认的处理方法
handler.cancel(),停止加载问题页面。














猜你喜欢

转载自blog.csdn.net/qq_28791419/article/details/79842601