【问题标题】:LocalBroadcastManager and possible security related issuesLocalBroadcastManager 和可能的安全相关问题
【发布时间】:2016-09-12 11:56:32
【问题描述】:

这是我计划做的事情:

我有我的Activity,我在其中注册了一个BroadcastReceiver

private LocalBroadcastManager localBroadcastManager;
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
        //handle received data
        }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    ....
    LocalBroadcastManager = LocalBroadcastManager.getInstance(context);
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(ACTIVITY);
    localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter);
}

我有一个IntentService,它从网络上获取数据并进行处理。在下载数据和处理完成期间,服务通过发送广播消息通知活动它正在做什么。下载数据和处理可能需要一段时间,具体取决于数据的大小。例如,最多可能需要 20 分钟。

   localBroadcastManager.sendBroadcast(new Intent(ACTIVITY).putExtra(ACTION, value));

通过在服务的onStartCommand 中注册接收器,Activity 使用类似的方法向IntentService 发送消息。

这是经过测试并且工作正常。我已经阅读了有关全球 BroadcastManagerLocalBroadcastManager 的信息,我担心这种方法的安全性。请记住,我的需求与服务和活动之间的通信严格相关,这两种方式都主要使用可打包的对象。

我的问题是:

  1. 使用LocalBroadcastManager 将数据从服务发送到活动会出现哪些安全问题?是否存在数据可能泄漏到另一个应用程序的情况? LocalBroadcast 真的是本地的吗?处理后的数据是私密的,这就是我担心的原因。

  2. 在服务和活动之间是否有更优化的通信方式?

【问题讨论】:

  • 欢迎您审核the code。时间不长。
  • 广告 2) 是 "bound local service" 模式

标签: android broadcastreceiver intentservice android-intentservice localbroadcastmanager


【解决方案1】:

从服务发送数据可能会出现哪些安全问题 使用 LocalBroadcastManager 进行活动?有没有什么情况 哪里的数据可能会泄漏到另一个应用程序? LocalBroadcast 真的是 当地的?处理后的数据是私有的,这就是为什么我有我的 担心。

广播仅限于您的应用程序的进程。不用担心。

在服务和服务之间是否有更优化的通信方式? 活动?

另一种方法是对服务进行投标和注册代表。我宁愿坚持LocalbroadcastManager

【讨论】:

    【解决方案2】:
    1. 正如documentation 所说:

    与使用 发送广播(意图):

    您知道您正在广播的数据不会离开您的应用,所以 不用担心泄露私人数据。

    这是不可能的 其他应用程序将这些广播发送到您的应用程序,因此您不需要 需要担心存在可以利用的安全漏洞。

    还有更多 比通过系统发送全球广播更有效。

    1. 有一种更高级的方法可以在服务和活动之间建立连接:Service Binding(另请查看附加说明!)

    对于 Intent,您只能使用 Bundle 在活动和服务之间传递数据,而对于绑定,情况并非如此。

    【讨论】:

      猜你喜欢
      • 2022-07-19
      • 2017-04-12
      • 2023-03-25
      • 2011-06-20
      • 2011-04-09
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多