【发布时间】:2013-01-21 05:01:52
【问题描述】:
终端仿真器必须嵌入网页中,用户必须在网页中编译和运行通过网页访问在服务器上创建的 java 程序。我想在终端中编译和运行程序。客户端无需安装任何应用软件。
【问题讨论】:
-
这不是问题。请改写它,以便它要求特定的东西。
标签: javascript jquery java-compiler-api terminal-emulator
终端仿真器必须嵌入网页中,用户必须在网页中编译和运行通过网页访问在服务器上创建的 java 程序。我想在终端中编译和运行程序。客户端无需安装任何应用软件。
【问题讨论】:
标签: javascript jquery java-compiler-api terminal-emulator
我会推荐以下内容:
不过,在向用户打开控制台时,您应该非常小心。您可以通过在所有终端命令前显式添加函数来进一步限制终端的功能,例如<?php echo exec('git '.$_GET['cmdtxt']); ?> 是确保调用 git 的一种方法,但它仍然容易受到攻击,因为您可能会执行第二个命令。我相信您可以弄清楚您的安全需求是什么并正确验证它们。
如果这看起来含糊不清,那只是因为您的问题不太具体。这是您要寻找的答案吗?让我知道:)
【讨论】:
首先,您可以创建一个用于显示结果的 div 和一个用于命令的文本区域。检查 textarea 的按键并在用户按下回车时使用 AJAX 将命令发送到服务器。您可以设置它们的样式,使其看起来更像终端。
请注意,将控制台暴露给用户很容易被黑客入侵。始终检查用户输入以确保无法执行危险的命令。
如何过滤命令的示例代码:
<?php
$cmd = $_POST['cmd'];
$allowed = array('ls','git','grep','...');//The allowed commands
foreach($allowed as $part){
if(strpos($cmd,$part) === false){
echo 'Command not recognized!';
}
}
ob_start();
passthru($cmd);
$result = ob_end_clean();
echo json_encode(array('result'=>$result));
希望对你有帮助。
【讨论】: