gpt4 book ai didi

android - 为什么 fragment 类可能无效?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:53 28 4
gpt4 key购买 nike

我刚刚使用 AndroidStudio 向导创建了一个 PreferenceActivity,运行它抛出了一个奇怪的异常:

java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid!

我看到了建议的解决方案 here但我想知道为什么我必须检查我的 fragment 类是否有效,因为我什至不完全理解“有效”的定义是什么,所以我决定问社区:

PreferenceActivity 有 isValidFragment(String fragmentName) 方法,出于某种原因必须覆盖它,为什么? fragment 类怎么可能无效?这种覆盖可能会出什么问题:

    @Override
protected boolean isValidFragment(String fragmentName)
{
return true;
}

最佳答案

为什么?

PreferenceActivity 的安全性受到威胁,并且提供了 isValidFragment(String name) 作为响应。

更具体地说,从漏洞披露来看:

Any app which implements and exports an activity that extends a PreferenceActivity class can be subverted to load an arbitrary class by exploiting the dynamic fragment loading process.

安全问题意味着流氓应用程序可以实例化您的 PreferenceFragments 并且它们会从实际的父级获取它们的额外内容,从而泄漏数据。

作为补丁,isValidFragment(String name) 被创建,因此您被迫提供“安全” fragment 的白名单,或者如果您始终返回 true,请承认您的应用程序被破坏的风险.

只需要启动 KitKat,因为是在引入补丁的时候。

fragment 类怎么可能无效?

为您的应用起一个陌生的名字。

会出什么问题?

有人可以通过 this pdf 中描述的方法攻击您的应用程序在评论中由@Sree 链接。

关于android - 为什么 fragment 类可能无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780457/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com