gpt4 book ai didi

android - 私有(private)广播发送者和接收者权限

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:19 27 4
gpt4 key购买 nike

我最近使用 HPFortify 服务对我的 Android 源代码进行了代码扫描。他们报告了其中一个广播接收器和发送器的安全漏洞。广播发送者和接收者在应用程序内部, Intent 不会发送到应用程序外部。这些主要用于内部通信。 HPFortify 建议使用 broadcaster 权限来减少攻击向量。这样你就限制了广播者,否则任何恶意应用程序都可以发送 Intent ,广播接收器将处理它。同样,他们建议使用接收者权限,以便预期的接收者接收到广播的 Intent 。这个广播者和接收器是应用程序内部的,其他应用程序不使用这个 Intent 。这是我的广播公司实际代码:

 Intent updatedIntent = new Intent("SOME-ACTION");
Context context = getAppContext();
context.sendBroadcast(updatedIntent);

我正在使用以下代码 fragment 动态注册广播接收器。

this.registerReceiver(updatedReceiver,
new IntentFilter("SOME-ACTION"));

HPFortify 建议使用带有权限字符串示例的 sendBroadcast:

Intent updatedIntent = new Intent("SOME-ACTION");
Context context = getAppContext();
context.sendBroadcast(updatedIntent, "SOME-PERMISSION");

类似于广播接收器:

this.registerReceiver(updatedReceiver,
new IntentFilter("SOME-ACTION"),
"SOME-PERMISSION", null);

我不确定如何定义此权限并在广播者和广播接收器中使用它。我需要在AndroidManifest.xml中定义私有(private)权限并在这里使用吗?

最佳答案

如果您需要在应用程序内广播,那么请使用 LocalBroadCastManager,因为本地广播管理器永远不会在当前进程之外发送广播 Intent 。

如果您希望其他应用程序能够接收或发送您的广播,请使用 BroadCastManager 并且您需要申请使用权限(自定义用户权限)。

有关详细信息,请参阅下面有关广播接收器的 Android 文档,它们在安全部分提供了有关安全性的详细信息。

http://developer.android.com/reference/android/content/BroadcastReceiver.html

关于android - 私有(private)广播发送者和接收者权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37129171/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com