javascript - 从 php 按钮运行 bash 代码

标签 javascript php linux

我想通过PHP在Linux服务器上测试4个文件,显示结果应该显示在文本区。让我知道解决这个问题的正确方法是什么。

sh test_batch.sh

$ {dict_file} $ {locale} $ {keyboard_layout} $ {golden_test_file} $ 
{auto_correction_file} (optional)

those are the four files with check box

 if (isset($_POST['files'])) {
 foreach ($_POST['files'] as $value) {
 echo $dir . $value . '<br />';
 $result = shell_exec('sudo sh test_batch.sh $dir .$value. ');

  }
  }else {
  exit('No files selected');
  }
  }
   ?>
                            <br/>
                            <table>
                             <tr>
                    <td><b>Result to Display and Save:</b></td></tr>
            <tr>
                    <td colspan="3">
                    <textarea disabled id="inputTextToSave"  style="width:512px;height:256px" value = "'.$result.'"></textarea>`

最佳答案

首先,您应该避免在 Web 脚本中使用 sudo 来做任何事情。如果有人决定在您的 $_POST 中向您的服务器提供字符串 "&& rm -rf/" 并将其连接到您的 sudo sh test_batch.sh $dir .$value 字符串?那将是非常糟糕的一天。

相反,考虑将 test_batch.sh 所做的任何事情实现到某种处理排队请求的工作脚本中(您可以在 Perl、PHP 和 Node.JS 中执行此操作……有几种方法。

关于javascript - 从 php 按钮运行 bash 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44212391/

相关文章:

linux - 在不使用 root 的情况下通过 ssh 备份远程服务器

javascript - 用方括号从对象中删除引号

php - 如何下载文件而不是保存 CSV 文件

php - 将参数从 Controller 传递到 codeigniter 中查看

php - INSERT INTO & LAST_INSERT_ID inside Query inside 函数

c - Linux 中的 gdb C 代码 - 地址越界

linux - rpm 升级 |添加新文件而不删除旧文件

javascript - jQuery |使用 div 进行 show() 和 hide()

javascript:检查表达式是否可评估?

javascript - Play 中页面特定的 javascript