所以我注意到没有startService()的变种接受权限。 这不是很危险吗?
我想象了以下简单的攻击场景:
我错过了什么吗?我期待一些startService()的变体,它要求目标应用拥有特定的权限,就像sendBroadcast(意图,权限)一样。 你会如何防止这种干扰?
谢谢!
答案 0 :(得分:0)
我错过了什么吗?
是。许可不能解决问题,因为攻击者只是声明他们持有相关权限。在Android 4.4及更低版本,if the attacker is installed first, the user might not even know about this。或者,用户可以盲目地同意许可。
你会如何防止这种干扰?
客户有责任验证服务是否正确实施。一种解决方案是验证用于签署服务的APK文件的签名密钥,将其与已知值进行比较。我的CWAC-Security图书馆为此目的a SignatureUtils
class。这个pair of sample projects说明了这种方法。