虽然ruby确实允许修改代码中任何地方的任何类,但我想知道是否有可能创建一个像受保护环境一样的沙箱来运行某些第三方代码,以便其他应用程序代码可以从任意中分离出来修改预定义的类/标准库类。
答案 0 :(得分:4)
您可以使用Ruby的安全级别:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/taint.html
以下是安全级别4及以上的说明:
Ruby有效地将正在运行的程序分成两部分。 Nontainted 对象可能无法修改。通常,这将用于创建 sandbox:程序使用较低的$ SAFE级别设置环境, 然后将$ SAFE重置为4以防止后续更改 环境。