假设我有这个糟糕的控制器代码:
class MovesController < ApplicationController
def create
eval(params[:input])
end
end
我一直在寻找一种最佳方法来对不受信任的代码进行沙箱运行,最近在 ruby-lang 的特性讨论中发现了这个问题:https://bugs.ruby-lang.org/issues/8468
这个问题的真正解决方案是在 Ruby 上面的层次上运行沙箱。我在 http://eval.in 上运行不受信任的代码,使用基于 ptrace 的沙箱。Charlie Somerville
进一步研究这个主题并没有更多关于纯 ptrace 文档以外的信息。是否有已知的实践 / 库用于在 Ruby 和 Rails 中使用 ptrace,或者需要自己设置自己的解决方案?