我正在编写一个应用程序,允许我的应用程序的用户使用Clojure扩展它。 Clojure通过应用程序中的网页输入并“evaled”运行。我的问题是如何对用户输入的代码进行沙箱处理,以便它不会破坏任何内容或调用System.exit或类似的东西?
答案 0 :(得分:17)
有一个图书馆。 Clojure中的lazybot IRC chanel使用它。您可以在此处找到它:https://github.com/flatland/clojail
答案 1 :(得分:3)
您应该能够通过配置JDK级别permissions来约束对代码的访问。看一下RuntimePermission设置,例如一个直接设置来禁止停止JVM(例如System.exit
)。