代码报告(和其他类似网站)如何在浏览器中运行代码?我确定他们只是在自己的服务器上运行它并返回值。但它是如何工作的?就像他们将代码写入临时文件或其他东西一样,在他们的服务器上运行...然后返回值?如何?比我做的更简单?
这解决了安全问题,但我仍感到不满意。我希望有人可能会有更好的东西在这里添加它实际上是如何工作的。
答案 0 :(得分:2)
这是完全的推测,我真的不知道他们做了什么,但你可以使用Kernel#eval
以不太安全的方式执行ruby中的字符串。以此为例:
eval "class MyClass; def run; puts 'I ran it!'; end; end; MyClass.new.run;"
=> I ran it!
理论上,您可以对字符串执行替换(即\n
变为;
)并通过eval
运行。