如何限制Android Intents或添加安全性

前端之家收集整理的这篇文章主要介绍了如何限制Android Intents或添加安全性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经为我的应用程序中的活动添加了一个intent过滤器,以便其他应用程序可以通过我的应用程序访问某些数据(来自云).但是,某些用户可能存在隐私问题,并且可能对其使用的数据不太满意.但是,其他应用程序可以插入我的应用程序,将其设置等备份到云端.

现在,我需要某种安全机制来限制哪些应用程序可以访问我的应用程序,以便我可以禁止恶意应用程序等.虽然无法识别恶意应用程序,但我希望通过仅允许某些“可信”来实现某种访问控制packagenames.但是我找不到怎么做.

另一种选择是添加权限要求,但更多用户可能会忽略这一点.虽然这将是用户错误(如果我不添加权限将是我的错),最近的应用程序已经采取了很多暴露用户内容的准备.

第三个选项是每次有一些应用访问我的用户提示用户.但是我没有packagename,所以我无法分辨出意图的来源.此外,我的应用程序自动从云中进行某些传输,因此用户可以“设置并忘记”意图.

我依靠意图在两个不同的应用程序之间传输一些命令.我看到我必须自己实施保护措施,但如果Google已经有一些流程,我不想重新发明轮子.如果没有,我将不得不实现我自己的身份验证流程或类似的东西.

编辑:我是一个菜鸟,所以我过于松散地使用术语.试图让问题更好.

关于应用程序的更多信息.它可以自动从/向云服务下载/上传.通过发送意图,另一个应用程序可以指定要下载或上载的文件.我不希望在没有用户知道的情况下发生这种情况,所以当意图进入时我会提示他并接受数据.而且,应用程序可以设置定期转移.虽然用户现在已经被提示两次(一次是在权限上,一次是在意图进入时),他没有权利投诉.但这是可以接受的做法还是我需要以某种方式保护它.

最佳答案
我认为您应该查看函数Binder.getCallingUid以获取调用进程的UID(然后是其packageName)或Binder.getCallingPid以获取调用进程的PID以及调用进程的此pid discover packageName.请注意,多个软件包可以使用相同的UID(如果它们仅使用相同的证书进行签名),并且多个软件包可以共享一个进程(但它们也应该具有相同的UID).

猜你在找的Android相关文章