当前位置:   article > 正文

Android安全——客户端安全要点,阿里P8大佬亲自教你

Android安全——客户端安全要点,阿里P8大佬亲自教你

区别基于Binder实现的BroadcastReceiver,LocalBroadcastManager 是基于Handler实现的,拥有更高的效率与安全性。安全性主要体现在数据仅限于应用内部传输,避免广播被拦截、伪造、篡改的风险。简单了解下用法:

  • 自定义BroadcastReceiver

public class MyReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

//Do SomeThing Here

}

}

  • 注册Receiver

MyReceiver myReceiver = new MyReceiver();

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);

IntentFilter filter = new IntentFilter();

filter.addAction(“MY_ACTION”);

localBroadcastManager.registerReceiver(myReceiver, filter);

  • 发送本地广播

Bundle bundle = new Bundle();

bundle.putParcelable(“DATA”, content);

Intent intent = new Intent();

intent.setAction(“MY_ACTION”);

intent.putExtras(bundle);

LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

  • 在Activity销毁时取消注册

@Override

protected void onDestroy() {

super.onDestroy();

localBroadcastManager.unregisterReceiver(myReceiver);

}

Application相关属性配置

  • debugable属性 android:debuggable=[“true” | “false”]

很多人说要在发布的时候手动设置该值为false,其实根据官方文档说明,默认值就是false。

  • allowBackup属性 android:allowBackup=[“true” | “false”]

设置是否支持备份,默认值为true,应当慎重支持该属性,避免应用内数据通过备份造成的泄漏问题。

三、WebView安全


  • 谨慎支持JS功能,避免不必要的麻烦。

提到对于Android4.2以下的JS任意代码执行漏洞,Android4.2以下?不必支持了吧!

  • 请使用https的链接,第一是安全;第二是避免被恶心的运营商劫持,插入广告,影响用户体验。

  • 处理file协议安全漏洞

//若不需支持,则直接禁止 file 协议

setAllowFileAccess(false);

setAllowFileAccessFromFileURLs(false);

setAllowUniversalAccessFromFileURLs(false);

  • 密码明文保存漏洞

由于webView默认开启密码保存功能,所以在用户输入密码时,会弹出提示框,询问用户是否保存。若选择保存,则密码会以明文形式保存到 /data/data/com.package.name/databases/webview.db中,这样就有被盗取密码的危险。所以我们应该禁止网页保存密码,设置WebSettings.setSavePassword(false)

  • 开启安全浏览模式

<meta-data android:name=“android.webkit.WebView.EnableSafeBrowsing”

android:value=“true” />

启用安全浏览模式后,WebView 将参考安全浏览的恶意软件和钓鱼网站数据库检查访问的 URL ,在用户打开之前给予危险提示,体验类似于Chrome浏览器。

四、数据存储安全;


  • 秘钥及敏感信息

此类配置应当妥善存放,不要在类中硬编码敏感信息,可以使用JNI将敏感信息写到Native层。

  • SharePreferences

首先不应当使用SharePreferences来存放敏感信息。存储一些配置信息时也要配置好访问权限,如私有的访问权限 MODE_PRIVATE,避免配置信息被篡改。

  • 签名配置signingConfigs

避免明文保存签名密码,可以将密码保存到本地,无需上传版本控制系统

在app目录下建立一个不加入版本控制系统的gradle.properties文件:

STORE_PASSWORD = qwer1234

KEY_PASSWORD = demo1234

KEY_ALIAS = demokey

gradle将自动引入gradle.properties文件,可以直接在buld.gradle文件中使用:

signingConfigs {

release {

try {

storeFile file(“E:\FDM\Key\demo.jks”)

storePassword STORE_PASSWORD

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

推荐学习资料


  • 脑图
    360°全方位性能调优


    由于文章篇幅问题点击链接查看详细文章以及获取学习笔记:GitHub

5BN1zBL-1711350490364)]

推荐学习资料


  • 脑图
    [外链图片转存中…(img-ReIcHbNq-1711350490365)]
    [外链图片转存中…(img-Ase78Ej0-1711350490365)]
    [外链图片转存中…(img-fIVnVTAf-1711350490365)]
    由于文章篇幅问题点击链接查看详细文章以及获取学习笔记:GitHub
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/431132
推荐阅读
相关标签
  

闽ICP备14008679号