2010-05-19 30 views
15

我需要創建環境來運行潛在的不可信代碼。程序允許連接到預先配置的地址:端口,而不是別的(甚至讀取系統時間)。我已編譯了類白名單。我查了類似的問題,但只發現基於SecurityManager的模板,其中AFAIK已棄用。 任何人都可以給我一個簡單的示例如何基於安全策略和AccessController在沙箱中運行代碼?基於安全策略創建java沙盒

回答

15

據我所知,它仍然是運行安全檢查的SecurityManager。但它似乎現在委託給AccessController。如果忽略此參數將沒有任何沙箱

-Djava.security.manager

首先,您需要在安全管理器切換。

其次,你需要告訴在哪裏可以找到策略文件:

-Djava.security.policy =

這將您的權限添加到您的Java家已定義的值。原始沙箱規則在.../jre/lib/security/java.policy中。但是,如果您希望自己的政策是唯一需要使用雙「=」的政策。這樣你完全控制了什麼是允許的。

例如:

-Djava.security.policy ==

我會建議你使用了 「用policytool」 附帶了Java。這是相當基礎的,但它可以幫助您用正確的語法快速編寫策略文件。我希望這可以幫助...