Android 漏洞修复

1. 隐士 Intent 劫持

 如果发现有隐士意图,至于要改为显示即可,启动 Service 时,使用隐士 Intent 启动  bindService(),系统就会报这个异常。

 

2. 未移除测试代码

 打包的时候没有把关于日志打印的 Log关 掉,把相应的关闭即可。

 

3. activity ,Service BroadcastReceiver 组件暴露

 如果组件不需要与其他 app 共享数据或交互,请将 AndroidManifest.xml  配置文件中设置该组件为 exported = “False”。

 

4. Fragment 注入

 1.如果应用的 Activity 组件不必要导出,或者组件配置了 intent  filter 标签,建议显示设置组件的 “android:exported” 属性为 false

 2.重写 isValidFragment 方法,验证 fragment 来源的正确性

 

5.为防御屏幕录制


     在涉及用户隐私的 Acitivity 中(例如登录,支付等其他输入敏感信息的界面中)增加WindowManager.LayoutParams.FLAG_SECURE 属性,该属性能防止屏幕被截图和录制。
     
      例如:getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE)  

 

6.未关闭备份模式

  在  AndroidManifest.xml  配置文件中显式配置  android:allowBackup=false。项目中代码  allowBackup="true"  改为 allowBackup=false  

 

7.程序可被任意调试

 AndroidManifest.xml 配置文件中中设置为 android:Debugable=”false”。

 

8.AES弱加密

禁止使用 AES 加密的 ECB 模式,显式指定加密算法为:CBC 或 CFB 模式,可带上 PKCS5Padding 填充。AES 密钥长度最少是 128 位,推荐使用  256 位

 

9. unzip解压缩

解压文件时,判断文件名是否有../特殊字符。

 

10. 动态注册广播

使用带权限检验的registerReceiver API进行动态广播的注册。

 最后附上解决这些问题的参考文档,各位看官可以参考这个网站上提供的解决方案去解决你自己每一个漏洞问题

https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver

 

你可能感兴趣的:(Android 漏洞修复)