狮子新安全模型将如何影响 Python?

11 投票
1 回答
681 浏览
提问于 2025-04-17 02:18

我很好奇,OS X Lion的新安全模型会对未来产生什么影响。具体来说,我在想“权限”和“沙盒”这两个概念。

这不是在讨论这些想法好不好,而是想猜测一下未来可能会发生什么。

我对像Python这样的东西很感兴趣。我们公司开发了一个小型的Python应用程序,用于紧急情况,主要是离线使用,不依赖网络软件。这款应用需要读取和写入文件系统。

我们的应用没有任何权限,因为它只是Python代码,并没有使用Cocoa框架。当Mac应用商店要求所有应用都必须使用沙盒并列出它们的权限时,我在想苹果会不会推出一个操作系统更新,告诉大家:“从现在开始,这就是我们的安全方式,如果你的应用不符合我们的安全模型,就不能运行,因为它不安全。”

我对此有些矛盾的感觉。一方面,我觉得这对消费者的电脑安全是个好事,能减少一些恶意代码。另一方面,这可能会让很多开发者的开发工作变得非常困难。

我还在想,如果Lion发布了这样的更新,Leopard或Snow Leopard会不会也有类似的更新。我觉得Leopard不太可能,因为它已经落后当前操作系统两代了。至于Snow Leopard,就要看苹果想支持旧系统多久了。

所以我想邀请苹果的开发者们来谈谈这个话题,或许能激发一些之前没有的想法。

1 个回答

6

如果你能把Python和你的脚本一起打包成一个.app文件,使用像py2app这样的工具,我想你可以修改Info.plist文件,这样就能满足苹果对代码签名的要求。同样,对于权限设置,我想你也可以编辑.app的entitlements.plist文件。我觉得沙盒管理程序sandboxd并不特定于某种语言,它只是控制程序对设备和文件的访问(比如,不允许访问某些受限的文件)。要记住,嵌入的Python解释器可能默认需要一些权限来初始化(因为它可能不是为了沙盒环境而设计的)。

对于iOS设备(必须在商店销售时进行沙盒处理),苹果的政策(iOS开发者程序协议第3.3.2节)是:

应用程序不能下载或安装可执行代码。只有当所有脚本、代码和解释器都打包在应用程序中且不被下载时,解释性代码才能在应用程序中使用。

看起来,如果上述解决方案可行的话,应该能满足这个要求(假设OS X应用也会有类似的规定)。不过,如果你不打算在App Store上发布你的应用,我觉得你不需要担心。我非常怀疑他们会要求在你的电脑上运行应用时进行代码签名或权限设置(而只是对在App Store上销售的应用进行沙盒处理,让那里成为获取应用的“安全”地方)。

撰写回答