CreatePendingResult(int,android.content.Intent,int)创建的PendingIntents是否安全?

时间:2015-12-16 01:37:25

标签: android android-intent android-pendingintent

createPendingResult(int, android.content.Intent, int)创建的PendingIntents是否可以抵御Intent欺骗攻击?

查看Activity类的源代码,我看到有一个getPackage()。但是,我不清楚生成的PendingIntent是否仅限于创建其上下文的应用程序。

1 个答案:

答案 0 :(得分:0)

这不安全。

首先,请检查此问题以获取有关PendingIntent的更多详细信息,以及为何不安全:What is an Android PendingIntent?

其次,一个非常重要的事情,上面问题的所有答案都没有提到,PendingIntent中的意图可以在创建PendingIntent后改变!这意味着,当您将PendingIntent提供给另一个应用程序时,可以更改PendingIntent的行为。这由createPendingResult参数控制。查看 createPendingResult (int requestCode, Intent data, int flags)Intent.fillIn (Intent other, int flags)了解更多详情 而CVE-2014-8609就是一个非常好的例子,google it。

最后,从Activity类和PendingIntent类的源代码中,我们可以看到实现 PendingIntent.getActivity和{{1}}非常相似,表示返回的PendingIntent具有相同的风险。