ruby 如何才能将某些代码与项目的其余代码隔离执行?

vs3odd8k  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(69)

有一个典型的Rails应用程序构建在7.0版本上。
该应用程序具有管理员在管理面板中编写小段代码的能力。此代码以纯文本形式保存到数据库中。
你能告诉我如何在项目中独立运行这些代码吗?所以不可能写一个平庸的User.all并从数据库中获取所有用户:)

UPD

几乎所有的教育门户网站都有这样的机会。编写代码,独立运行代码,获得结果。

zfciruhq

zfciruhq1#

有多种方法可以实现这一点,要得到一个像样的答案,你需要更具体,但假设你想创建一个教育沙箱,如你的例子中所描述的,我认为你最好的选择是:
1.使用沙箱库,这些库允许您在应用程序中以安全的方式评估不受信任的代码-一些示例Ruby-Sandbox,Web-Sandbox -尝试的方式
1.使用Binding类限制eval执行的上下文/范围。-快捷方式
1.使用新的ruby WebAssembly功能在browser/html中执行代码,而无需通过后端。-the long term solution way
如果没有更多的信息,很难给予你更具体的答案,你肯定应该对这些选项做一些研究。

**可能最好的选择是#3,因为它已经在ruby 3.2.0中引入了这些特定的原因,我相信它同时是最高性能和最安全的解决方案,尽管它相对较新,并且没有经过多年的生产使用。

相关问题