上传失败报错:PreferenceActivity安全漏洞修复方法咨询
修复PreferenceActivity安全漏洞以解决上传失败问题
咱们先从最基础的安全配置优化做起:尽可能在Manifest文件里给PreferenceActivity设置exported=false,这能直接阻止外部应用向这个类发送Intent,从根源上避免这类安全漏洞。
但如果你的业务场景要求这个存在漏洞的PreferenceActivity必须对外部应用开放,那就要分两种情况针对性修复:
1. 修复错误的isValidFragment实现
先检查出问题的类,看看它是不是包含或者继承了一个在所有代码路径都返回true的isValidFragment方法。如果是这种情况,你需要更新这个类,让它只允许指定的Fragment类加载。举个例子:如果你的PreferenceActivity只允许MyFragment类,其他Fragment都不允许,那可以这么实现检查逻辑:
public boolean isValidFragment(String fragmentName) { return MyFragment.class.getName().equals(fragmentName); }
2. 处理targetSdkVersion过低且未实现isValidFragment的情况
如果你的应用在Manifest里设置的targetSdkVersion低于19,而且出问题的类完全没有实现isValidFragment方法,那这个漏洞是继承自系统的PreferenceActivity的。修复方案有两个选择:
- 优先选择把
targetSdkVersion更新到19或更高版本; - 如果因为某些限制没法更新targetSdkVersion,那就按照上面第一种情况的方法,实现isValidFragment来校验允许加载的Fragment类。
内容的提问来源于stack exchange,提问作者Tadiyal Singh Devendra
相关产品推荐
相关产品推荐

