11

我很想知道 OS X Lion 中的新安全模型将如何影响未来。具体来说,我在质疑权利和沙盒。

这不是这些是否是好主意的问题。相反,这是一个对未来会发生什么的最佳猜测的问题。

我对Python之类的东西很好奇。我的公司在没有基于 Web 的软件的情况下为紧急情况制作了一个小型 Python 应用程序。这包括读取和写入文件系统。

我们的应用程序没有任何权利,即因为它只是 Python 代码,我们不做任何 Cocoa 包装。当 Mac App Store 要求所有应用程序都必须经过沙盒处理并列出其授权生效时,我想知道 Apple 是否会推出操作系统更新并说,“这就是我们从现在开始的安全方式,如果你的应用程序不符合我们的安全模型,它不会运行,因为它不安全。”

我对此有着复杂的情绪。一方面,我认为这对于让消费者的机器更加安全非常有用。更少的流氓代码和所有的腐烂。另一方面,我认为,对于许多开发人员来说,这将使开发成为一个活生生的地狱。

我还想知道如果 Leopard 或 Snow Leopard 发布相同的更新,Lion 是否应该发布这样的更新。我的想法不是 Leopard,因为它比当前操作系统落后两代。Snow Leopard 完全取决于 Apple 希望支持旧操作系统多长时间。

因此,现在我向 Apple 开发人员开放,让他们就这个话题发表自己的看法,并可能在以前没有的地方产生想法。

4

1 回答 1

6

如果您可以将 Python 与您的脚本一起嵌入并使用py2app 之类的东西将其打包到 .app 中,我想您可以添加/编辑 Info.plist以满足 Apple 的签名要求。同样对于权利,我想您可以编辑 .app 的 entitlements.plist。我认为沙盒执行器 sandboxd不是特定于语言的,它只是允许/阻止进程对设备和文件的访问(例如,通过不授予受限制的文件描述符)。请记住,默认情况下,嵌入式 Python 解释器可能需要访问某些权限以进行初始化(因为创建它时可能没有考虑到沙盒)。

对于 iOS 设备(必须经过沙盒处理才能在商店中出售),Apple 的政策(iOS 开发者计划协议第 3.3.2 节)是:

应用程序不得下载或安装可执行代码。如果所有脚本、代码和解释器都打包在应用程序中并且未下载,则解释的代码只能在应用程序中使用。

如果可能,上述解决方案似乎将满足此要求(假设对 OS X 应用程序做出类似规定)。但是,如果您对在 App Store 上分发您的应用程序不感兴趣,我认为您无需担心。我非常怀疑他们很快就会需要代码签名或权利来在您的计算机上运行应用程序(而不是只是将 App Store 上出售的那些沙盒化,使其成为获取应用程序的“安全”场所)。

于 2011-11-04T22:17:21.477 回答