关于Android应用开发的一些安全注意事项

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Android应用开发的一些安全注意事项相关的知识,希望对你有一定的参考价值。


原文地址: 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_PRIVATEopenFileOutputopenFileInput方法假设你真的想将数据存储在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中打印敏感信息。喜欢的usernamepasswordWeb服务的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应用开发的一些安全注意事项的主要内容,如果未能解决你的问题,请参考以下文章

android和服务器安全通信

关于samba的一些注意事项

Android 性能优化:多线程注

一个关于开发和网络安全的探讨(注意)

什么叫Android程序安全补丁级别?

关于android的设备管理器-DevicePolicyManager