android - Google Play 商店:由于 Intent 重定向漏洞,Android 应用被拒绝
问题描述
我们收到了由于 Intent 重定向而导致应用被拒绝的通知,为了适应那些我们在代码中应用了一些检查但今天仍然被拒绝的应用。您能否在下面阅读有关应用程序要求的详细信息以及为适应错误/警告所做的更改。
应用简介: 我们的应用结合了 TWA(PWA Wrapper)和原生 Android 代码,其中身份验证内容主要发生在原生代码中,然后在成功登录时,用户将使用 TWA Launcher 活动重定向到 PWA。为了从 TWA 返回到本机代码,我们正在使用 Intent 过滤器。我们浏览了电子邮件中“ Intent Redirection ”(此处)下提供的选项,但 3 三个中没有一个完全适合我们的案例,即从 TWA Launcher Web URL 到同一应用程序中的 Native android 活动。尽管我们添加了一些额外的检查,如下面的从网页到本机代码的片段所示(由 Depplink 调用:
if (intent.`package` == null || !intent.`package`.equals(packageName)) {
finish()
}else {
//Business logic
// Open new activity from here
}
以下详细信息来自 Google Play 控制台门户。
发布前报告详细信息
意图重定向
Errorbrightness_1Security
您的应用包含意图重定向漏洞。有关详细信息,请参阅此 Google 帮助中心文章。• androidx.activity.ComponentActivity.startActivityForResult
同样在一个地方,我们使用了现在已弃用的startActivityForResult,我们将其替换为新的 API(即registerForActivityResult)。请参考下面的代码片段:
//代码片段
旧代码:
val intent = Intent(this, TwaImplicationActivity::class.java)
startActivityForResult(intent, AppConstants.RequestCode.TWA_IMPLICATION)
新变化:
twaActivityStartForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult ->
if(result.resultCode == Activity.RESULT_OK){
if(viewModel.showEnrolment.get()!!){
navigateToEnrolment()
} else {
navigateToLogin()
}
}
}
val intent = Intent(this, TwaImplicationActivity::class.java)
twaActivityStartForResult?.launch(intent)
如果有的话,我错过了。请告诉我们正确的地方,我在我们的应用程序中错过了安全检查的地方?
解决方案
我认为您的 startActivityForResult 是问题所在,上次我也遇到了这个问题,所以我的建议是将 startActivityForResult 更改为 startActivity(this, TwaImplicationActivity::class.java)
推荐阅读
- git - 使用 CodeDeploy 和 Bitbucket 管道在 EC2 上自动部署
- database - 如果发出关闭即时命令,正在运行的 PL/SQL 块会发生什么情况
- python - 由于 MultiIndexing,Pandas Aggregated df 显示 head() 和 .info() 之间的列数不同
- r - 如何计算小计并将其添加到同一数据框中?
- javascript - Redux 未捕获类型错误:调度的操作不是函数
- asp.net-mvc - 验证不适用于 mvc5 中的下拉菜单
- python - 如何在python中的mysql查询中使用like百分比(like %)
- javascript - Javascript 代码在 Safari 浏览器中不起作用
- outlook - 使用 Visualforce 电子邮件模板上的 ics 附件发送日历邀请时,Outlook 使用电子邮件主题作为事件标题
- serverless-framework - 如何在无服务器框架中将 CF 资源定义为函数事件源