javascript - 如何在 textarea 中执行 Ruby 代码并在 iframe 中安全地显示结果?
问题描述
我有一个<textarea>
我想在我的 HTML 网页上用作 Ruby 代码编辑器的工具。我想使用 Javascript 运行 Ruby 代码,并<div>
在 an 中使用 IDoutput
作为命令行<iframe>
来输出 Ruby 代码的结果,就像Codecademy一样。
另外,我想找到一种安全的方法来做到这一点,这样它就不会损害我服务器的安全性。我只能使用 PHP 和 Node.JS。
解决方案
如果我正确理解您的问题,您需要做的是将 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 服务器用户的权限。
推荐阅读
- r - 如何使用子字符串查找以特定字符开头的数据框?
- asp.net-core - 即使在 .Net Core Identiy 中将 RequireConfirmedEmail 设置为 false,也会发送确认电子邮件
- node.js - “PrimaryGeneratedColumn”NOT NULL 约束错误
- python-3.x - Python PIL Pillow - 将 PNG 转换为 JPG 时透明度遮罩不好
- webpack - 用 lodash-es 摇树
- javascript - 如何跟踪玩家与计算机的分数
- python - 如何设置 Python scipy 的 nquad 选项以在奇点附近积分(避免除以零)?
- jscodeshift - 如何取消注释 JSCodeshift 中的注释行或块
- node.js - websockets 连接是否会消耗大量移动数据?
- java - 使用正则表达式替换重复模式追加