You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Intent对象作为额外参数传入Intent的putExtra方法是否安全?

问题:Intent对象属于Parcelable类型,调用Intent的putExtra方法时将另一个Intent作为额外参数传入是否属于安全操作?

示例代码如下:

val intentAsParam = Intent(context, Activity1::class.java)

val intent = Intent(context, Activity2::class.java)
intent.putExtra("PARAM_INTENT", intentAsParam)
startActivity(intent)

核心结论

该操作是Android官方支持的合法语法,是否安全完全取决于你的使用场景:

场景说明

  • 同应用内部组件传递:属于安全操作。
    整个数据交互都在当前应用进程内完成,嵌套Intent的所有内容不会对外暴露,不存在泄露、被第三方篡改的风险,可放心使用。
  • 跨进程/传递给第三方应用:存在安全风险。
    嵌套Intent的所有内容(包括配置的action、data、携带的extra参数等)序列化后会完全暴露给接收方,接收方可任意读取、修改内容,若包含敏感信息会直接导致数据泄露,极端情况下还可能触发Intent注入漏洞,被恶意应用引导跳转至风险页面。

使用建议

  • 同应用内使用时,接收方按如下写法即可正常解析拿到嵌套的Intent:
// Android 12及更低版本写法
val targetIntent = intent.getParcelableExtra<Intent>("PARAM_INTENT")
// *Android 13及更高版本推荐写法,避免类型强转风险*
val targetIntent = intent.getParcelableExtra("PARAM_INTENT", Intent::class.java)
// 后续可直接使用拿到的Intent
targetIntent?.let { startActivity(it) }
  • 跨进程场景下尽量避免嵌套传递Intent,若必须使用请遵循以下规则:
    • 不要在嵌套Intent中存储密码、用户隐私信息等敏感内容
    • 对接收方做签名校验,仅允许你信任的应用接收对应数据
    • 若必须传递敏感内容,需先做加密处理再存入Intent

内容的提问来源于stack exchange,提问作者aliftc12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 22:42:03