原文地址: http://www.javacodegeeks.com/2014/05/simple-tips-to-secure-android-app.html

                  http://developer.android.com/training/articles/security-tips.html

Android已经具有内置到操作系统的安全功能,显著减少应用安全问题的频次和影响,但作为应用程序开发者,我们也须要注意在开发应用程序时的安全问题. 安全级别是取决于应用程序的类型和域. 这里有我们须要注意的一些潜在的安全问题,我已经收集到了这篇文章中.

在这里我列出来在开发应用中须要保护应用程序最常见的一些事项:

1.不要把私人或敏感数据储存在SD卡。

要存储在内部存储的文件,请使用下面的模式(Context.MODE_PRIVATE)openFileOutput&openFileInput方法。

假设你真的想将数据存储在SD卡,然后对它进行加密使用.

2.通过标识exported flag 为false限制ContentProvider的使用,当然并不一定每一个应用中都这样使用,仅仅是在没有与其它应用交互的情况下要标识为false.

3.限制的WebView来訪问本地数据。 HTML5和相关技术已经普遍应用在移动Web应用程序或混合型(Hybird)应用程序。

对于Hybrid採用的WebView从本地存储显示的HTML或从server获取HTML和的其它内容。对于webview重大安全问题是setAllowFileAccess()和setAllowContentAccess()方法.

4.通过BroadCastReceiver和Intent不传递敏感信息。

使用LocalBroadcastManager的进程内/应用程序的广播数据传递。 使用LocalBroadcastManager须要supportv4.jar.

5.不要在LogCat中打印敏感信息。

喜欢的username。password。Web服务的URL。请求或响应信息等细节.

6.在应用上线前去除没有必要的log日志

7.不接收处理一些恶意伪造的Intent.在之前的BroadcastReceiver的方法的OnReceive()方法中收到的Intent,验证调用者的包名。动作等信息。

8.给Service加上相应的自己定义权限.假设仅仅有自己的应用使用时能够加上 exported = false(同ContentProvider).

9.限制Activity的訪问,.假设仅仅有自己的应用使用时能够加上 exported = false.

10.应用公布之前确保debug mode 为false.

11.对于跨应用程序的功能。应用程序响应之前验证调用.

12.server验证方面能够使用基于Https的訪问.

13.当你认为某些变量或者方法在Java层easy破解的时候,能够把相应变量改为用JNI的方式去获取

14.使用ProGuard 文件混淆代码

15.移除from AndroidManifest.xml中不必要的权限.

16.慎用DexClassLoader 载入应用程序之外的dex文件.

关于Android应用开发的一些安全注意事项的更多相关文章

  1. Android N开发 你需要知道的一切

    title: Android N开发 你需要知道的一切 tags: Android N,Android7.0,Android --- 转载请注明出处:http://www.cnblogs.com/yi ...

  2. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  3. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

  4. Android游戏开发实践(1)之NDK与JNI开发02

    Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...

  5. 【转】Android 底层开发的几点

    我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径.根据前辈的经验,Android底层完全入门需要两年. 先说下我的入门过程:第零步,下载源码,我下的 ...

  6. 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING

    <Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th  2014 Email:skyseraph00@163.com 更多精彩请直接 ...

  7. Android安全开发之安全使用HTTPS

    Android安全开发之安全使用HTTPS 1.HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验.主机名弱校验.webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易 ...

  8. Android安全开发之通用签名风险

    Android安全开发之通用签名风险 作者:伊樵.舟海.呆狐@阿里聚安全 1 通用签名风险简介 1.1 Android应用签名机制 阿里聚安全漏洞扫描器有一项检测服务是检测APP的通用签名风险.And ...

  9. Android安全开发之浅谈密钥硬编码

    Android安全开发之浅谈密钥硬编码 作者:伊樵.呆狐@阿里聚安全 1 简介 在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码.文件中,这样做会引起很大风 ...

随机推荐

  1. 如何使用科大 mirrors 加速 pip?

    编辑 ~/.pip/pip.conf 文件(如果没有则创建之),将 index-url 开头的一行修改为下面一行: index-url = https://pypi.mirrors.ustc.edu. ...

  2. redis入门学习记录(二)

    继第一节 redis入门学习记录(一)之后,我们来学习redis的基本使用. 接下来我们看看/usr/local/redis/bin目录下的几个文件作用是什么? redis-benchmark:red ...

  3. ABP官方文档翻译 0.0 ABP官方文档翻译目录

    一直想学习ABP,但囿于工作比较忙,没有合适的契机,当然最重要的还是自己懒.不知不觉从毕业到参加工作七年了,没留下点儿什么,总感觉很遗憾,所以今天终于卯足劲鼓起勇气开始写博客.有些事能做的很好,但要跟 ...

  4. STM32端口输入输出模式配置

    STM32的IO口模式配置 根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是: 四种输入模式 上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平. 下拉输入:把电 ...

  5. Java判断字符串是否符合yyyyMMdd日期格式

    Java判断字符串是否符合yyyyMMdd日期格式 代码: /** * 判断参数的格式是否为“yyyyMMdd”格式的合法日期字符串 * */ public static boolean isVali ...

  6. 使用ShellExecute打开目标文件所在文件夹并选中目标文件

    转载:http://blog.csdn.net/chenlycly/article/details/7366364 转载:http://bbs.csdn.net/topics/50440550 She ...

  7. Educational Codeforces Round 47 D

    Let's call an undirected graph $G=(V,E)$ relatively prime if and only if for each edge $(v,u)∈E$ $GC ...

  8. python strip()函数 os.popen()

    函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字 ...

  9. R:reshape2包中的melt

    melt()函数melt为熔化.溶解的意思,此处可理解为扔进去一个东西,出来另外一个本质一样但形状不一样的东西.语法结构:melt(data, ..., na.rm = FALSE, value.na ...

  10. 与R纠缠的两件事——rownames和子集--转载

    与R语言纠缠了一个星期,从快速上手的暗暗得意,到之后某些细节的纠结烦躁,过山车式体验中,我逐渐才认识了真实的R语言. 期间遇到两个很烦恼的问题,一个是让人烦躁抓狂,另一个是无意发现的重大错误. 1.  ...