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

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


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

1. 不要把私人或敏感数据储存在SD卡。要存储在内部存储的文件,请使用以下的模式(Context.MODE_PRIVATE)openFileOutput&openFileInput方法。如果你真的想将数据存储在SD卡,然后对它进行加密 使用.


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


3.限制的WebView来访问本地数据。 HTML5和相关技术已经普遍应用在移动Web应用程序或混合型(Hybird)应用程序。对于Hybrid采用的WebView从本地存储显示的HTML或从服务器获取HTML和的其他内容。对于webview重大安全问题是setAllowFileAccess()和setAllowContentAccess()方法.


4.通过BroadCastReceiver和Intent不传递敏感信息。使用LocalBroadcastManager的进程内/应用程序的广播数据传递。 使用LocalBroadcastManager需要supportv4.jar.


5.不要在LogCat中打印敏感信息。喜欢的用户名,密码,Web服务的URL,请求或响应信息等细节.


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


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


8.给Service加上对应的自定义权限.如果只有自己的应用使用时可以加上 exported = false(同ContentProvider).


9.限制Activity的访问,.如果只有自己的应用使用时可以加上 exported = false.


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


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


12.服务器验证方面可以使用基于Https的访问.


13.当你觉得某些变量或者方法在Java层容易破解的时候,可以把对应变量改为用JNI的方式去获取


14.使用ProGuard 文件混淆代码


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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值