2011-09-14 48 views
11

我很想知道OS X Lion中的新安全模型會如何影響未來。具體來說,我質疑權利和沙盒。Lion的新安全模型如何影響Python這樣的東西?

這是不是這些是否是好想法的一個問題。相反,這是一個猜測未來會發生什麼的問題。

我很好奇的東西像Python。我的公司製作了一個小型的Python應用程序,用於緊急情況下使用基於網絡的軟件這包括讀取和寫入文件系統。

我們的應用程序沒有權利,也就是因爲它只是Python代碼,我們沒有做任何可可包裝。當Mac App Store要求所有應用程序都必須進行沙盒處理並列出其權利時,我想知道蘋果是否會對操作系統進行更新並說:「這是我們從現在起的安全措施,如果您的應用程序不符合我們的安全模型,它不會運行,因爲它不安全。「

我對此百感交集。一方面,我認爲讓消費者的機器更安全非常好。少流氓代碼和所有腐爛。另一方面,它會使開發成爲很多開發人員的生活地獄。

我也想知道如果這樣的更新應該出來的獅子,如果相同的更新將被釋放或者Leopard或雪豹。我的想法不是Leopard,因爲它比當前操作系統落後兩代。雪豹全部取決於蘋果想要支持一個較老的操作系統的時間。

所以現在我打開它的蘋果開發說話就這個話題他們的想法,也許產生而以前有沒有想法。

+4

我會說沒有人知道,直到蘋果實際上做了什麼。目前,所有這些安全措施都是可選的,您可以繼續以您始終擁有的相同方式開發軟件。我不認爲這會突然改變。隨着時間的推移,他們可能會默認調整並執行更多的安全模型,但您仍然可以「只寫軟件」。只有當你想要通過App Store時纔是必須的,IMO是一種強制人們想要發佈軟件的好方法;但這似乎並不需要關注你。 – deceze

回答

6

如果您可以將Python與腳本一起嵌入並使用類似py2app的方式將其打包到.app中,我會想象您可以通過add/edit the Info.plist來滿足Apple對簽名的要求。同樣的權利,我想你可以edit the .app's entitlements.plist。我認爲沙盒執行程序不是特定於語言的,它只是允許/阻止進程訪問設備和文件(例如,通過不授予受限制的文件描述符)。請記住,嵌入式Python解釋器有可能默認需要訪問某些權利以進行初始化(因爲它可能不是用沙箱創建的)。

iOS裝置(必須沙箱要在商店出售),蘋果的政策(iOS開發者計劃協議第3.3.2節)是:

應用程序可能無法下載或安裝可執行代碼。如果所有腳本,代碼和解釋程序都打包在應用程序中並且沒有下載,則只能在應用程序中使用解釋的代碼。

似乎上述解決方案,如果可能的話,將滿足這一要求(假設類似的規定將爲OS X應用程序)。但是,如果您不想在App Store上發佈您的應用,我認爲您不需要擔心。我非常懷疑,他們需要代碼簽名或權利來在計算機上運行應用程序(而不是僅僅對App Store上銷售的應用程序進行沙盒處理,使其成爲獲取應用程序的「安全」地點)。

+0

關守是朝這個方向邁出的第一步。它將在Mountain Lion(10.8)中引入,並在默認配置下在用戶運行未簽名的應用程序時通知用戶。不過,它對沙箱沒有任何影響。 – Dov

+0

@Dov雖然我相信您可以通過Mac App Store簽署未分發的應用程序。 – shookster

+0

當然可以,這就是Gatekeeper的全部要點。在其最嚴格的設置中,您只能安裝MAS應用程序。在中間(默認)設置中,它會在您運行任何非MAS應用程序時發出警告,該應用程序未由開發人員使用Apple問題證書籤名。在限制性最小的設置中,沒有警告,例如在Lion中。 – Dov

相關問題