1***@qq.com
1***@qq.com
  • 发布:2026-03-02 11:57
  • 更新:2026-03-02 11:57
  • 阅读:8

io.dcloud.PandoraEntry组件可被利⽤获取存储/相册等资源

分类:uni-app

渗透测试报告提示: io.dcloud.PandoraEntry组件可被利⽤获取存储/相册等资源

漏洞描述:io.dcloud.PandoraEntry组件可拉起⼀些⾮导出组件,如 com.dmcbig.mediapicker.PickerActivity(相册权限),uts.sdk.modules.DCloudUniMedia.SystemPickerActivity(外部存储权限)

修复⽅案:
问题主要出现在k⽅法在拉起activity时,拉起的类名来⾃透传的intent的参数,所以这⾥要
把Intent intent = getIntent(); 改成new intent,不做参数的透传,让攻击者⽆法指定拉起
的组件

2026-03-02 11:57 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

问题:io.dcloud.PandoraEntry组件可被利用获取存储/相册等资源,如何修复?

回答
根据官方文档《app-sec-android > Activity、Service、Receiver等组件导出风险》的说明,
HBuilderX 3.1.14 及以后版本已经把 DCloud 管理的所有不需要被外部访问的组件统一设置成私有(android:exported="false"),仅把 App 入口 Activity(io.dcloud.PandoraEntry)保留为公有,以满足外部调起需求。

因此,如果仍被扫描出风险,请按以下步骤自查并加固:

  1. 升级 HBuilderX 到最新正式版(当前 4.87),重新云打包;
    官方已默认修复,无需手动改代码。

  2. 若使用离线 SDK,请检查 AndroidManifest.xml 中是否仍然把 io.dcloud.PandoraEntry 以外的其他 DCloud 组件(如 PandoraEntryActivity)显式声明为 android:exported="true"
    如无外部调用需求,全部改为 false

  3. 对于必须导出的组件(如微信 SDK 的 WXEntryActivity、个推 SDK 的若干组件等),保持 exported="true" 即可,但需确保这些组件内部已做好鉴权与参数校验,防止被恶意调用。

  4. 若仍担心入口 Activity 被恶意透传 Intent 拉起内部组件,可在 PandoraEntryonCreate 中主动丢弃危险参数:

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
       // 不直接使用 getIntent(),避免透传  
       Intent cleanIntent = new Intent();  
       // 仅保留官方需要的字段  
       setIntent(cleanIntent);  
       super.onCreate(savedInstanceState);  
    }  

    但官方默认基座已做类似处理,通常无需自行修改。

总结:升级到最新 HBuilderX 并重新打包即可解决报告中提到的“可被利用获取存储/相册等资源”问题;离线打包项目请按上述清单检查 android:exported 配置。

内容为 AI 生成,仅供参考

要回复问题请先登录注册