有多种方法可以实现这一点,要得到一个像样的答案,你需要更具体,但假设你想创建一个教育沙箱,如你的例子中所描述的,我认为你最好的选择是: 1.使用沙箱库,这些库允许您在应用程序中以安全的方式评估不受信任的代码-一些示例Ruby-Sandbox,Web-Sandbox -尝试的方式 1.使用Binding类限制eval执行的上下文/范围。-快捷方式 1.使用新的ruby WebAssembly功能在browser/html中执行代码,而无需通过后端。-the long term solution way 如果没有更多的信息,很难给予你更具体的答案,你肯定应该对这些选项做一些研究。
1条答案
按热度按时间zfciruhq1#
有多种方法可以实现这一点,要得到一个像样的答案,你需要更具体,但假设你想创建一个教育沙箱,如你的例子中所描述的,我认为你最好的选择是:
1.使用沙箱库,这些库允许您在应用程序中以安全的方式评估不受信任的代码-一些示例Ruby-Sandbox,Web-Sandbox -尝试的方式
1.使用Binding类限制eval执行的上下文/范围。-快捷方式
1.使用新的ruby WebAssembly功能在browser/html中执行代码,而无需通过后端。-the long term solution way
如果没有更多的信息,很难给予你更具体的答案,你肯定应该对这些选项做一些研究。
**可能最好的选择是#3,因为它已经在ruby 3.2.0中引入了这些特定的原因,我相信它同时是最高性能和最安全的解决方案,尽管它相对较新,并且没有经过多年的生产使用。