- allowbackup设置
如果没有导出数据的情况,应该将 android:allowbackup 属性设置为 false,防止 adb backup 导出数据;
- 数据安全
db等APP数据文件尽量放在data/data下,而非sd卡中;
db数据库存储数据时,尽量加密;
db数据库操作时应尽量使用insert/update/等方法,而非execSQL,放在sql劫持注入;
有时为了方便webview调起APP某页面,使用特定 file:schema 方式,应控制此类功能访问本地数据,禁止其访问本地敏感数据;
本应用内的广播通信必须使用 LocalBroadcast,如跟其他APP广播通信,应注意本地敏感数据;
禁止把敏感信息打印到 log 中,例如用户的个人信息(也可在gradle打包时,配置关闭log);
- intent校验
开放的 activity/service/receiver 等需要对传入的 intent 做合法性校验;
- 网络加密
网络请求时,使用https 而非 http,防止被抓包,篡改数据;
- webview js交互
被js调用的本地函数必须以@JavascriptInterface 进行注解,否则有安全漏洞,请自查资料;
// 处理页面传递过来的方法
@JavascriptInterface
public String exec(String cmd, String paramsData) {
......
}
// WebView组件关联js接口类
H5JavaScriptInterface ndJsInterface = new H5JavaScriptInterface(mContext, webview, h5JavaScriptListener);
webview.addJavascriptInterface(ndJsInterface, "WZApp");
也可使用桥连模式解决(android桥接成熟的第三方不多,ios的桥接比较成熟);
第一篇: 安卓编程技巧总结(1) 资源与UI布局处理
https://www.jianshu.com/p/ff97b15d5c9d
第二篇: 安卓编程技巧总结(2) 基础组件开发
https://www.jianshu.com/p/b05752377887
第三篇:安卓编程技巧总结(3) 进程与线程处理
https://www.jianshu.com/p/7d05c8a368bd
第四篇:安卓编程技巧总结(4) 数据文件处理
https://www.jianshu.com/p/0515df3b697d
第五篇:安卓编程技巧总结(5) 图片处理
https://www.jianshu.com/p/76690b2ba310
第六篇:安卓编程技巧总结(6) APP安全分析
https://www.jianshu.com/p/4347ff392122
网友评论