createPendingResult(int, android.content.Intent, int)创建的PendingIntents是否可以抵御Intent欺骗攻击?
查看Activity类的源代码,我看到有一个getPackage()。但是,我不清楚生成的PendingIntent是否仅限于创建其上下文的应用程序。
答案 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具有相同的风险。