代码之家  ›  专栏  ›  技术社区  ›  Tom Dalling

Objective-C插件架构安全性(Mac,而非iPhone)

  •  7
  • Tom Dalling  · 技术社区  · 16 年前

    我可能正在为Cocoa应用程序(Mac,而不是iPhone)编写插件系统。

    一种常见的方法是使每个插件成为一个束,然后将束注入到主应用程序中。我关注这样做的安全性影响,因为包将完全访问Objective-C运行时。我特别关注一个插件,它可以访问处理注册和串行密钥的代码。

    我们正在考虑的另一个插件系统是基于分布式通知的。基本上,每个插件都是一个单独的过程,它们只通过分布式通知进行通信。

    是否有安全地装载捆的方法(例如沙盒法)?如果没有,您看到使用分布式通知有什么问题吗?还有其他更好的插件架构吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Nicholas Riley    16 年前

    是的,OSX有 sandboxing support 在每个进程级别上。我所知道的唯一开源第三方客户端是 Chrome . 您还可以研究包装器,例如 Native Client .

    也就是说,出于安全考虑,尝试沙盒插件是没有意义的,除非你在网络上加载不受信任的插件或内容(即Web浏览器)。如果有人想在本地破解您的应用程序,他们可以使用调试器、dtrace等。

    应用程序和插件进程之间使用的IPC机制实际上取决于您正在进行的通信类型。对于大多数目的来说,机器间的分布式对象(我想这就是您要写的东西)当然不是一个坏选择,但您不想通过它发送视频。你可以退房 CoreIPC 在开发中 WebKit2 用途;它在马赫数端口上工作。