最近复习Android的知识,发现了好多值得需要注意的东东。

转自:http://www.taobaotesting.com/blogs/2336

编写android短信安全程序项目中的安全注意点

云林  发表于:2013-01-10  浏览:7633次  评论:3次  所属分类: 安全测试

有幸参加了淘宝网组织的工程师之夜第二轮无线之夜, 与boss铁花和乔倩同学一起做了个 短信的收读程序 , 重点在体现安全性上, 在程序过程中有点小收获,记录于此, 第一次做完整的android 程序, 没看什么参考,单纯个人理解 ,这里的安全我分三块,APK反编译、activity安全,数据库安全。

APK反编译, 在APK反编译上,我们使用了淘宝两套反编译工具, 一套代码保护,一套DEX文件保护,使用通过So文件加载, 以及不能被反编译的Dex文件 等,由于涉及到淘宝产品安全, 具体就不细讲了 。

activity 安全,在这一块上我们做了几个内容,

  1. 第一个是所有程序入口必须是输入密码界面,用户不能从其他方式进入到程序的其他activity中

使用方法:

  • 所有activity 在intent 跳转之后,必须finish ,一开始程序即是这么设计,后来发现,这样写用户体验会非常不好,在程序中,用户一旦点返回就会整个退出程序,后面改了操作, 在程序中intent 跳转 不 finish , 一旦activity 要跳转到输密码的 activity , 不论从哪儿过来, 输密码的activity 都会结束所有activity 并 直接 kill 进程, 这样下次用户进来之后 ,必须先进入输入密码的activity中
  • 还有一种情况是用户在 内部 页面,点击 home 键,回退到页面 ,在进入程序, 这时我们可以在 onResume 方法中查看如果intent没有特定参数带入或没有intent(内部跳转的intent会顺带来一个 带加密参数的intent),那么即跳转到 main页面,要求输入密码
  • 总之概括一句话, 不论用户如何退出,都会结束所有activity 后在退出 ,即下次再进来会要求输入密码

2.     第二所有intent 必须带加密参数才容许跳转

在程序内部传递, 或通知栏信息进入的时候, 必须带上指定的加密参数, 才容许跳转,否则重新调回到主页面,要求输入密码 。这块主要是放 伪造通知栏信息 进入程序内容页面

3.    第三是在main 页面,onStart(),方法中查看当前 activity 栈中 第一个activity 是否是程序的activity , 如果不是,根据activity 生命周期的看法, back前的activity 很可能是攻击者的activity在获取你的密码 。这个是防activity劫持的基础

4 .  所有 intent 均为点对点跳转, 不使用广播事件。 为了防止 intent 事件被监听

5 . (在manifest文件中将所有activity 设置为 android:launchMode="singleTask" 并且不配置 main filter ,作用是 用户按home 键退出之后 ,在进入肯定回到首屏,这个方法其实有点点问题,不合符google的开发规范, 建议谨慎使用,另一个方法, 建议在onStop方法中 finish 这样也方便) 1 和 5 的作用是  不论用户如何退出,都会结束所有activity 后在退出 ,即下次再进来会要求输入密码 ,这个具体怎么做 参考另一篇博文 http://www.taobaotest.com/blogs/2337

1 2 3 4 点 加起来, 基本可以防止activity劫持的情况,这点我各种测试中验证了一把, 是可行的。 这一块上,也只是测试 ,希望有想法的同学给我留言,探讨下

数据库安全

1 、 防暴力破解

对于爆破而言,我们需要做的是如何缓解攻击者的破解时间,该程序采用的方法是如果输错密码 ,即会退出程序,需要在点击图标进入,这样尝试一个密码,至少需要2s , 按照我上回8位 数字密码 爆破 每秒 300-500次 破解,需要35个小时才能遍历完毕的速度, 如果用户设置一个6位 纯数字密码, 攻击者要暴力破解,则至少需要400d 。

2 、用户名和密钥绑定

加解密的密钥设置为通过用户密码几次转码后得到, 跟随用户密码动态绑定,如果用户密码更改, 那么加密内容也必须重新拿出来解密后在加密

3 、防止数据库注入

防止数据库注入,所有操作均使用sqllite 的封装函数, 并且对search函数中的参数做强制类型转义

2点 的作用体现在,即使攻击者攻破一台手机, 也无法使用 该台手机的密钥去做第二台的破解,另外,就算攻击者拿到了数据库, 把密码字段删除后,也无法通过重置密码来获取短信内容 。

转自http://blog.csdn.net/sasoritattoo/article/details/17616485

android程序安全注意点相关推荐

  1. Android程序员的技术要求和学习路线

    转载自知乎上关于Android程序员技术等级标准的回答: 如上图所描述的技能要求,可分为下面几大模块: 通用知识 编程语言 Android 编码与设计 工具和方法 对应学习线路如下 书籍准备: 1.疯 ...

  2. Android 程序自动更新功能模块实现

    2019独角兽企业重金招聘Python工程师标准>>> Android 程序自动更新功能模块实现 在程序启动的时候检测服务器上有没有对应版本更新,如果有更新,提示用户是否更新. 在程 ...

  3. vs2015编译android,VS2015 Update2 构建 Android 程序问题汇总

    自VS2015起, Visual Studio开始逐渐内置支持跨平台开发, 并且Visual Studio团队还额外发布了一个编译工具集Clang with Microsoft CodeGen, 方便 ...

  4. Android程序员如何有效提升学习效率?帮你突破瓶颈

    背景 惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口. 那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很 ...

  5. python开发安卓程序-python可以编写android程序吗?

    python可以编写android程序吗?答案是肯定的.Android不直接支持使用python开发应用,需要使用其它中间件或者库.PythonForAndroid.CLE以及Wrapandroid ...

  6. 比较windows phone程序启动和android程序启动原理

    windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...

  7. 手工编译Android程序

    手工编译Android程序   赖锋 我的china-unix博客 http://laiboy.cublog.cn 我的CSDN博客 http://blog.csdn.net/laiboy 程序描述 ...

  8. 给Android程序员的六个建议

    给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...

  9. Android程序设计基础

    #Android应用程序架构 Android程序的入口被称为Main Activity,带有界面的Android应用程序一般需要从Main Activity启动. 目录结构 Adnroid工程主要包括 ...

  10. 编写第一个Android程序

    Android Studio下载地址:https://dl.google.com/dl/android/studio/install/3.0.0.18/android-studio-ide-171.4 ...

最新文章

  1. Mybait缓存机制
  2. 电机贴上锡纸到底有没有作用?
  3. linux ss 命令简介 端口连接查看 代替netstat
  4. 人脸特征点定位之Explicit Shape Regression
  5. LVS:三种负载均衡方式与八种均衡算法
  6. manifest.mf._MANIFEST.MF和feature.xml版本控制规则
  7. 对话李飞飞:云数据库战争已经进入下半场
  8. 最简单方法远程调试Python多进程子程序
  9. RQNOJ 95 多多看DVD(加强版):01背包
  10. 二维码QR码的“疯狂”广告
  11. 你认识什么是前端吗?你是合格的前端吗?
  12. 安装matlab 2016a win10 64bit系统
  13. FPGA数字信号处理(十)ASK调制技术
  14. 【平面设计基础】11:配色——配色原理
  15. PHP基础知识系统复习
  16. 霍志刚中国科学院计算机,曙光4000系列高性能计算机研究集体
  17. 数据查询和业务流分开_基于大数据的舆情分析系统架构 - 架构篇
  18. c++实现currency类(两种)
  19. JAVA调用R语言 (未完)
  20. h3c r4900服务器系统安装,H3C R4900 G3安装CentOS 6.7网卡配置方法

热门文章

  1. 关于VMware虚拟机的侧通道缓解措施
  2. 微信小程序页面背景图片设置
  3. 我国云市场达1500亿元 云股票应声上涨
  4. 独家首发java品优购项目课程,20天课程,430个知识点!视频+资料全部免费领!
  5. 手机无线打不开网络连接到服务器,melogin.cn手机上打不开 melogin·cn打开界面解决方法...
  6. 微信小程序合法域名的配置
  7. FastAPI 的路由介绍及使用
  8. node[13]-回调
  9. 素描篇—素描五官的刻画和塑造~
  10. H5对App说:“别磨蹭,赶紧起来”