限制在JRuby脚本中访问Java类

时间:2011-04-13 20:35:44

标签: security jruby

我想允许客户端在JRuby中编写脚本并在Web服务器上运行它们。有没有办法禁用java-jruby集成。或者至少是一种禁止访问ceratain类的方法?

2 个答案:

答案 0 :(得分:0)

您是否允许用户提交文件并让您的服务器将其作为脚本执行?由于几个原因,这可能是一个非常糟糕的主意。首先,他们可以用Java做什么,你不希望他们这样做,他们不能用普通的红宝石做什么?

话虽如此,确保脚本中没有require 'java'将阻止Java集成。

答案 1 :(得分:0)

查看org.jruby.Profile界面。有了这个,您可以实现一个不允许加载某些文件或类的自定义版本。正如上面的评论所示,禁止加载“java”应该足以禁用Java集成。

您可以在初始化运行时之前使用org.jruby.RubyInstanceConfig#setProfile设置运行时配置文件。如果您使用的是org.jruby.embed API,请使用org.jruby.embed.ScriptingContainer#setProfile