首页 > 解决方案 > 如何在 textarea 中执行 Ruby 代码并在 iframe 中安全地显示结果?

问题描述

我有一个<textarea>我想在我的 HTML 网页上用作 Ruby 代码编辑器的工具。我想使用 Javascript 运行 Ruby 代码,并<div>在 an 中使用 IDoutput作为命令行<iframe>来输出 Ruby 代码的结果,就像Codecademy一样。

Codecademy 控制台示例

另外,我想找到一种安全的方法来做到这一点,这样它就不会损害我服务器的安全性。我只能使用 PHP 和 Node.JS。

标签: javascriptphphtmlnode.jsruby

解决方案


如果我正确理解您的问题,您需要做的是将 POST 中的任何内容发布<textarea>到 PHP 脚本中,然后该脚本可以将 POST(ed) 代码写入文件,并使用 PHP 系统调用来执行该代码.

<?php
file_put_contents('tmp.rb', $_POST['txtTextArea']);
echo system('ruby tmp.rb');
?>

从 PHP 执行 Ruby 脚本并获取输出的 原始链接。

我建议您使用诸如 fetch(或 ajax)之类的异步 JavaScript 调用来执行此操作,然后您可以让 PHP 返回 Ruby 执行的结果,然后您可以在页面内的某个位置打印它。

请注意,这可能会导致远程执行可能很危险的命令,具体取决于在运行 PHP 和 Ruby 的服务器上配置的 Web 服务器用户的权限。


推荐阅读