eval()的替代方案

Ben*_*min 2 ruby security eval

我正在寻找该代码的替代方案:

 expl = eval "BeEF::Modules::Exploits::#{klass.capitalize}.new"
Run Code Online (Sandbox Code Playgroud)

这里的评估是完全不安全的.有没有我可以用来生成动态类而不使用eval的替代方法?就像在,klass总是不同的.所以我的代码保持通用.

谢谢你的时间.

Mag*_*olm 7

您可以使用Module#const_get:

expl = BeEF::Modules::Exploits.const_get(klass.capitalize).new
Run Code Online (Sandbox Code Playgroud)