[英]Sandboxing JSR-223
ScriptEngineManager有一個構造函數,它接受一個類加載器。 類加載器用於加載腳本引擎實現。 當類繼承其類加載器時,腳本引擎及其創建的任何對象也應該使用該類加載器。
該類加載器需要拒絕存在任何未列入白名單的類。
最后使用自定義SecurityManager,以便您可以對正在使用的類加載器進行訪問檢查。
編輯:這是我在Java中使用Sandboxing Rhino發現的一篇文章。 其中大部分內容也適用於JSR-223。 Sun的實現是Rhino的修改,因此可能存在一些差異。
是否可以在單獨的JVM中運行需要腳本引擎的應用程序部分? 您可以使用不同的類路徑(和安全管理器)啟動腳本引擎JVM,然后在兩個JVM之間使用某種形式的輕量級消息傳遞。
請參閱http://code.google.com/p/prebake/source/browse/trunk/code/src/org/prebake/js/RhinoExecutor.java以及相同包中的相關類,尤其是那里的SANDBOXING_FACTORY。
這是一些代碼,用於對rhino解釋器進行沙盒化,以允許它訪問由加載器調解的文件系統。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.