Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为ruby设置虚拟环境或沙盒,而不删除对外部API的访问';s_Ruby_Permissions_Metaprogramming_Virtual_Sandbox - Fatal编程技术网

如何为ruby设置虚拟环境或沙盒,而不删除对外部API的访问';s

如何为ruby设置虚拟环境或沙盒,而不删除对外部API的访问';s,ruby,permissions,metaprogramming,virtual,sandbox,Ruby,Permissions,Metaprogramming,Virtual,Sandbox,我运行的代码如下所示: result = system("ruby " + filename_random_ruby_script) if result save_to_disk(random_ruby_script) else # Do Nothing end 变量“random\u ruby\u script”表示任何.rb文件 这段代码是对system()的许多调用中的第一个,它运行一个ruby文件,该文件可能还包含对system()的调用、磁盘读/写、HTTP请求等 必须运行r

我运行的代码如下所示:

result = system("ruby " + filename_random_ruby_script)
if result
  save_to_disk(random_ruby_script)
else
  # Do Nothing
end
变量“random\u ruby\u script”表示任何.rb文件

这段代码是对system()的许多调用中的第一个,它运行一个ruby文件,该文件可能还包含对system()的调用、磁盘读/写、HTTP请求等

必须运行ruby文件才能了解它的功能,但它可能会尝试读取/写入/执行除自身之外的其他内容,我不希望它删除我的HDD或发布淫秽推文

我想创造一个空间,让这个程序可以运行,没有权限写入/执行它的父目录中的任何内容,但可以通过任何网络协议在本地读取任何内容

我还想知道它是否尝试在本地或网络上写入/执行任何内容


可能有一个gem或软件可以做类似的事情,但我对沙盒代码非常熟悉,所以任何建议都会很有帮助

使用安全级别,不要在系统中运行脚本


例如,这在旧的github gem builder中使用过(Gempecs是普通的可执行ruby代码)。

我正在测试该文件以进行编译。我可以在不呼叫系统和安全级别的情况下执行此操作吗?可以。需要或加载一个文件将导致代码被加载并“编译”(如果您在MRI上,它实际上将被解释为一个抽象语法树,因为MRI不是编译器)。或者,您可以使用ruby-c运行代码,这将检查语法(但不检查功能)。