我有一个经典的案例,其中我的一个应用程序可以向其他应用程序提供内容。我知道可以使用具有签名保护级别的权限来保护内容提供者。但是我担心另一个方向。如果未安装包含内容提供程序的应用程序,而恶意应用程序包含具有相同权限的提供程序(我知道该权限不应偶然冲突,但我正在考虑恶意应用程序),该怎么办。我如何确保我的应用仅在提供者具有相同签名的应用中定义时才查询提供者?
我能想到的最接近的方法是通过程序包管理器找到其他应用程序,并验证签名是否匹配。并且由于我的其他应用程序具有内容提供程序,因此不能将具有相同权限的其他内容提供程序安装在同一设备上。但是与此同时,我正在包名称和授权之间建立联系。我希望有一种更清洁的方法。
调用resolveContentProvider()上PackageManager,传递权威的字符串。这将为您提供有关该ContentProvider字符串的详细信息。从那里,检查该提供程序包的签名,以查看它是否与您的包匹配。
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |