在没有 android:exported=false 的情况下将 NFC 活动设为私有



我有一个NFC活动,它指定了一个意图过滤器和数据。这就像

        <intent-filter>
            <action android:name="android.nfc.action..." />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:host="..."
                android:path="..." />
        </intent-filter>

现在这里的问题是,因为我没有包括android:exported="false"。 它使此活动容易受到来自外部应用程序的恶意攻击,因为该活动现在是公开的。这里的问题是,如果我将导出的属性设置为 false,我将无法从外部意图调用的活动(这应该通过 onNewIntent() 触发活动)

有没有办法使活动"安全",同时不影响其一般触发机制,即通过外部意图?

如果您需要收到有关标签的通知,则需要 Intent 过滤器。标记调度程序使用它来查找扫描标记时要考虑的感兴趣活动。如您所见,如果您将活动设为私密,则无法通知它。您担心哪些"恶意攻击"?您的活动与您编码一样安全:如果您只处理NFC意图,那么您将是"安全的"(当然,除非NFC有效载荷触发设备擦除代码或其他东西......

最新更新