我使用 Firebase Messaging 创建了一个简单的项目,并使用以下依赖项。
implementation 'com.google.firebase:firebase-messaging:20.0.0'
Run Code Online (Sandbox Code Playgroud)
我已经构建了该应用程序并检查了其合并的AndroidManifest.xml 文件。Firebase Messaging SDK 唯一导出的组件是以下接收器:
<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
我找不到该权限的定义com.google.android.c2dm.permission.SEND,即使我已经解码了 Google Play Services APK 的 AndroidManifest.xml 并在那里找不到任何内容。除了它的定义之外,它无法阻止恶意应用程序use-permission并广播伪造的意图。另外,由于 Intent 是通过 传递的system_server,接收方无法检查发送方的身份。
Firebase Messageing SDK 如何应对这种威胁?