我最近使用HPFortify服务对我的Android源代码进行了代码扫描。他们报告了其中一个广播接收器的安全漏洞。他们建议使用广播公司的权限来减少攻击媒介。这样你就可以限制广播,否则任何恶意应用都可以发送意图,广播接收者也会对其进行处理。
这是我的实际代码:
<receiver
android:name="com.xyz.core.util.ConnectionChangeReceiver"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
HPfortify建议我应该使用这样的东西:
<receiver
android:name="com.xyz.core.util.ConnectionChangeReceiver"
android:permission="SOME-PERMISSION"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
我试图查看源代码和文档,但我无法找到合适的广播者权限。
答案 0 :(得分:0)
您可以创建自己的权限,除非呼叫者具有相同的权限,否则无法呼叫您的接收者。这对于合作应用程序很有用。
以下是Android Manifest中权限标记的说明: http://developer.android.com/guide/topics/manifest/permission-element.html
你可以做的是:
<permission
android:name="com.xyz.permission.YOUR_PERMISSION"
android:protectionLevel="normal" />
<uses-permission
android:name="com.xyz.permission.YOUR_PERMISSION" />
<receiver
android:name="com.xyz.core.util.ConnectionChangeReceiver"
android:permission="com.xyz.permission.YOUR_PERMISSION"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>