gpt4 book ai didi

ruby - 您如何使用 ptrace 对在 Rails 中运行的不受信任的代码进行沙盒处理?

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:55 24 4
gpt4 key购买 nike

假设我有这个糟糕的 Controller 代码:

class MovesController < ApplicationController
def create
eval(params[:input])
end
end

一段时间以来,我一直在寻找一种最好的方法来沙箱化不受信任的代码的执行,并偶然发现了这个 ruby​​-lang 特性中的讨论:https://bugs.ruby-lang.org/issues/8468

The real solution to this problem is to run a sandbox at the level above Ruby. I run untrusted code on http://eval.in inside a ptrace based sandbox. Charlie Somerville

对该主题的进一步研究并没有得到比纯粹的 ptrace 文档更多的东西。是否有在 Ruby 和 Rails 中使用 ptrace 的已知实践/库,或者是否需要设置自己的解决方案?

最佳答案

有一个名为 trusted-sandbox 的 gem要做到这一点。但要小心,因为 Docker实际上并不是防黑客的。

还有GeordiCodePad 使用.

ruby 1.8 有一个(错误?)沙箱实现,但不再受支持。

但实际上,您的问题就像一个老笑话,患者说“医生,我这样做的时候很痛。”医生回答“好吧,不要那样做”

有一百万种你可以做的事:

  • 使用具有一流沙盒的语言(如 Lua)。
  • 使用模板语言(如 Liquid 或 Mustache)。为实际需要完成的事情编写您自己的解析器。
  • 运行在客户端运行的“程序”(在 javascript 或 hotruby 中)并且仅将处理后的数据发送回您的服务器。

关于ruby - 您如何使用 ptrace 对在 Rails 中运行的不受信任的代码进行沙盒处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915557/

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