2013-07-13 33 views
0

對於某些不那麼值得信任的庫,我想限制對文件系統和網絡的訪問。Java中的chroot-like環境?

我知道security.policy中的Java安全策略。但是這限制了方法調用。 我需要的是某種內部防火牆和ACL。

它可以像限制文件系統訪問某個子樹一樣簡單,並限制對特定IP的網絡訪問。

在Java級別上有類似的東西嗎,還是我必須在系統級別上執行它?

+0

我不這麼認爲。我知道的唯一程序就是這樣的遊戲Robocode,但這需要他們使用自定義文件訪問權限。 – Chase

回答

1

對於使用帶有使用自定義安全策略配置的安全管理器的類加載器來實現不可信代碼的「沙盒」,當然是可能的。這就是Java瀏覽器插件如何阻止不受信任的applet連接到隨機網站或讀/寫主機文件系統中的文件。

但是,以這種方式實現基於ACL的文件系統訪問是不可行的。這很可能需要編寫一個定製的SecurityManager類。

我想第一個看看使用系統級設施有多容易。

+0

謝謝。在系統級別上可能很容易,但這會讓用戶擔負重任。我想允許某些工具來處理這個開箱即用的問題。 –

+0

*「...但是把用戶的負擔」*。不必要。這取決於你是否可以編寫腳本。 –