python - Lion 的新安全模型将如何影响 Python 之类的东西?

标签 python macos osx-lion entitlements appstore-sandbox

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

这不是这些想法好不好的问题。相反,这是一个对 future 会发生什么的最佳猜测的问题。

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

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

对此,我的心情很复杂。一方面,我认为这对提高消费者机器的安全性非常有用。更少的流氓代码和所有腐烂的东西。另一方面,我认为这将使开发成为许多开发人员的人间 hell 。

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

因此,现在我向 Apple 开发者开放,让他们就这个话题发表意见,或许还能在以前没有的地方产生想法。

最佳答案

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

对于 iOS 设备(必须进行沙盒化才能在商店出售),Apple 的政策(iOS 开发者计划协议(protocol)第 3.3.2 节)是:

An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded.

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

关于python - Lion 的新安全模型将如何影响 Python 之类的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7419912/

相关文章:

ruby-on-rails - 无法加载此类文件 -- ruby​​gems.rb

xcode - 如何更改扩展坞和应用程序切换器中 OSX 应用程序的名称?

Xcode - 使用 SDK 10.9 链接 ApplicationServices.framework 会导致 10.7 不兼容

gcc - "...can' t 在使用 gcc 编译 Python C 扩展时找出...的架构类型问题

Safari 5.1 从内存中卸载标签

python - 更改 matplotlib 中刻度的标题样式

python - 将整数列表转换为一个数字?

python - 如何替换/绕过类属性?

java - jar 文件捆绑后获取 Java 系统输出(通过 MAC 中的 AppBundler)

python - 类型错误 : src data type = 17 is not supported