概述

Activity / Service / BroadcastReceiver / ContentProvider 的 export 设置为 true 时,攻击者可以向这些组件发送畸形 Intent 。

危害

攻击者可以轻易地向Activity等发送自己的 Intent ,如果 Intent 携带空数据,或则畸形数据等,如果 Activity 内部处理接收到的 Intent 没有进行格式格式校验或者异常捕获,造成程序崩溃。

class DemoActivity extends BaseActivity { @Override   protected void onCreate(@Nullable Bundle savedInstanceState) {Intent  data =getIntent();String name = data.getStringExtra("name");// 攻击者发送 data == null 时,会造成程序 NullPointer }}

防范

  • 仅仅程序内部使用的 Activity 等设置 export 为 false
  • 处理 Intent 数据时,进行 try-catch 防止数据格式异常
class BaseReceiver extends BroadcastReceiver{public final void onReceive(Context context, Intent intent){if( context != null && intent != null) {try {String action = intent.getAction();if("com.demo.test".equlals(action)){String name = intent.getStringExtra("name");//...}}catch(Throwable t){t.printStackTrace();return;}}}}
  • 如果export为true,添加permission安全字段

更多相关文章

  1. 简单的三方登录SDK示例,Android(安卓)Activity之间数据的传递
  2. JSONArray的使用
  3. Android数据库操作查询中Cursor类的问题
  4. Android(安卓)客户端发送邮件(JMail方式)
  5. Android联系人数据库全解析(3)
  6. Android联系人数据库全解析(4)
  7. 使用NDK开发SQLite3
  8. Android开发之数据保存技术(一)
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. js去除html标记的测试问题。很多分!
  2. 关于INPUT的autocomplete="off" 属性(浏览
  3. html5-开发起步使用工具
  4. 使用materialize css在不同页面上显示不
  5. 从数据库中读出来的是html标签,如何转换
  6. HTML表单学习1——表单基础
  7. 学习html5第三天
  8. 如何使用CSS在HTML文档中插入换行符
  9. vim 生成html 高亮
  10. 如何使用meta在“NEW”选项卡中重定向