首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SendBroadcast可能导致哪些安全问题,更好的方法是什么?

SendBroadcast可能导致哪些安全问题,更好的方法是什么?
EN

Stack Overflow用户
提问于 2012-04-03 07:56:35
回答 1查看 1K关注 0票数 4

我又问了一个问题,这个问题和Android有关。这只是为了让我对发送广播的运作有更深入的了解。

我想知道的是:

1.为什么要使用广播接收器来进行活动以获得结果?

我认为广播接收器在处理实际设备信息时会比在应用程序中传递意图更有用。

2.开发人员可能遇到什么样的安全问题?

如果我假设,任何人知道我的包名(也许是通过反向工程),基本上就能捕捉到发送的意图,并看到随它传递的信息,我是否正确?

3.如果要将对象传递给其他活动,LocalBroadcastManager有什么好处?

我读到,如果你不想让发送的意图泄露到应用程序之外,这可能会更好。这是否也意味着,即使某个人有包名,他们仍然不能接收到应用程序之外的广播?

如果你认为我的问题不完整或基于错误的假设,请告诉我,这样我就可以从中吸取教训。:)

感谢一切能帮助你的人。

干杯,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-03 08:21:05

1)广播接收器是一种在不存在任何UI的情况下全局接收消息(意图)的机制。它们很好地在服务、活动甚至BroadcastReceiver本身等不同组件之间传递信息。可以在清单中定义它们,以便侦听特定的操作并做一些事情(例如,启动服务/活动),即使您的应用程序没有运行。然而,在activityForResult中,您的应用程序(活动)必须运行才能接收结果,这可能并不适合所有时间。

2)是的,如果您的动作字符串为其他应用程序所知,那么您的广播就会暴露在任何收听这些特定动作的接收器上。要避免这种情况,请使用LocalBroadcastManager.

3)使用LocalBroadcastManager是增加隐私的最好方法,确保您的广播只能在应用程序的上下文中被广播和收听。其他应用程序不能收听这样的广播,因为它们有自己的上下文,而且不知道您的应用程序的上下文。

,根据LocalBroadcastManager的google:

  • 您知道您正在广播的数据不会离开您的应用程序,所以不需要担心泄露私有数据。
  • 其他应用程序不可能将这些广播发送到您的应用程序,所以您不需要担心它们可能利用的安全漏洞。
  • 比通过系统

发送全局广播更有效。

最后一句话:如果您需要在应用程序中广播消息,并且不想在全球发送消息,那么LocalBroadcastManager是最好的选择。否则就走普通的路

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9989283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档