我正在开发一个允许插件通过OSGi (使用Apache Felix)运行的安卓应用程序。然而,我想在每个插件的基础上强制实施某些安全方面。即允许哪个插件访问文件系统。另外,我希望在一般情况下防止反射。
到目前为止,我找到的所有教程都提到了结合使用OSGi安全性和加载标准SecurityManager。然而,后者在Android上并不存在,因此使得整个方法完全不可用。我不想使用字节码操作来阻止在各种插件中发生的事情,因为这会很麻烦,而且我总是会遗漏一些东西。
那么,有谁知道如何在Android上获得类似于标准Java安全的安全体系结构?最重要的是,我如何防止反射被使用?
但是,是否有一种方法可以防止I/O访问,即基于每个线程?
发布于 2012-11-30 10:27:47
除非你愿意修改核心操作系统,否则你不能修改。Android标准权限可以限制对文件和API的访问,但没有什么可以阻止反射。操作系统使用它,所以如果你完全阻止它,事情就会崩溃。通过UID阻塞进程可能是可行的,但您必须修改核心Java API的实现(在libcore中)。
发布于 2012-11-30 15:38:49
沙箱里的沙箱!由于性能原因,这听起来并不是一个特别吸引人的想法,但据我所知,SecurityManager仍然可以设置。因此,您只需设置自己的安全管理器,并在检查过程中捕获它们。然而,this discussion表示,安卓团队对基本库的质量不是很有信心。(我可能会删除所有检查以获得一些性能,但我现在觉得进程内安全的整个想法是一个简单、清晰和错误的解决方案……)
https://stackoverflow.com/questions/13629469
复制相似问题