我最近一直在设计一些 Android 应用程序,我的下一个实验冒险之一是第一个收听外部 Intent:Google Voice。我想知道恶意用户是否有可能创建另一个与预先存在的受信任 Intent 几乎相同的 Intent,以将邪恶代码注入(inject)到我的应用程序中。
最佳答案
由于 Intent 将 Activity 彼此隔离(除非您 root 或者存在尚未发现且相当基本的缺陷),因此它们无法相互注入(inject)代码。但是,您启动的任何 Activity 当然可以根据其 list 执行任何允许的操作。
针对恶意应用程序的主要安全对策,无论它们是有意还是以其他方式进行通信,都是 manifest以及安装时的用户批准。如果用户安装了处理 RecognizerIntent
的应用程序,当您尝试获得语音识别时,该应用程序将作为一个选项呈现给最终用户。如果最终用户选择它,它将被执行。它对您的应用最多能做的就是通过 onActivityResult
将结果发布回您的 Activity
。 。您必须决定对这些数据的信任程度(例如,您可能希望在发送可能令人尴尬的电子邮件之前要求用户进行验证)。
任何安全威胁模型都必须考虑您保护的 Assets 、您信任的人员和内容,以及外部交互和攻击点。当涉及到语音识别时,Android 安全模型下可能发生的最糟糕情况是外部应用程序自行执行最糟糕的操作(仅使用您的应用程序作为触发器),或者返回错误的语音识别结果。
关于java - Android Intent 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888240/