自定义公共事件未加权限校验会有安全风险

发送通知使用系统API publish实现,通知中会构建一个WantAgentInfo,其实包含业务场景的用户操作 actionButtons(用户的点击动作),例如通话中的挂断、拒接等,当用户操作通知后会发送对应的公共事件。

发送时WantAgentInfo中包含BundleName,但是在接收时这个值并不能用来校验发送方的身份,因为这个值表示希望接收的应用包名。

问题影响:

在通话退到后台成功发送通知时,在命令窗口执行命令:hdc shell cem publish -e 'hangUp',电话会挂断。

由于在接收时并没有校验发送方的身份,导致可以模拟对应的公共事件,影响业务。

HarmonyOS
2024-06-13 10:53:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
dickhome

1、在接收公共事件的时候可以使用系统级别权限校验发送方的身份;在接收公共事件的订阅信息 CommonEventSubscribeInfo 中包含 publisherPermission,表示发送方只有这个权限才可以将此公共事件发送到订阅方;

2、尝试使用现有的系统公共事件或者申请将目标事件列为系统级别的公共事件;

分享
微博
QQ
微信
回复
2024-06-13 21:02:34
相关问题
公共事件有哪些简单使用
398浏览 • 1回复 待解决
用户订阅系统公共事件
486浏览 • 1回复 待解决
公共事件实现跨进程通信
486浏览 • 1回复 待解决
如何把公共事件发布给其他设备
2989浏览 • 1回复 待解决
公共事件的生命周期是怎样的
453浏览 • 1回复 待解决
是否可以自定义权限弹框文字
464浏览 • 1回复 待解决
如何实现H5自定义事件
711浏览 • 1回复 待解决
自定义弹窗自定义转场动画
390浏览 • 1回复 待解决
hvigor自定义扩展demo
306浏览 • 1回复 待解决
如何自定义Component 属性
13364浏览 • 3回复 待解决
如何访问自定义文件?
320浏览 • 1回复 待解决
是否支持自定义装饰器
673浏览 • 1回复 待解决
如何自定义组件原型菜单
404浏览 • 1回复 待解决
ArkTs如何自定义容器组件?
1547浏览 • 1回复 待解决
如何自定义模拟Tabs组件
371浏览 • 1回复 待解决
自定义弹窗使用相关问题
362浏览 • 1回复 待解决
Code Linter自定义代码规范
468浏览 • 1回复 待解决