gpt4 book ai didi

ruby - 如何在不删除对外部 API 的访问的情况下为 ruby​​ 设置虚拟环境或沙箱?

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:00 24 4
gpt4 key购买 nike

我正在运行一些看起来像这样的代码:

result = system("ruby " + filename_random_ruby_script)
if result
save_to_disk(random_ruby_script)
else
# Do Nothing
end

变量“random_ruby_script”表示任何 .rb 文件。

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

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

我想创建一个空间,让这个程序可以在没有权限的情况下运行,在它的父目录中写入/执行任何东西,但可以通过任何网络协议(protocol)在本地读取任何东西。

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

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

最佳答案

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

http://ruby-doc.org/docs/ProgrammingRuby/html/taint.html

例如,这在旧的 github gem 构建器中使用(gemspecs 是正常的可执行 ruby​​ 代码)。

关于ruby - 如何在不删除对外部 API 的访问的情况下为 ruby​​ 设置虚拟环境或沙箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com