簡體   English   中英

從PHP按鈕運行bash代碼

[英]running bash code from php button

我想通過PHP在Linux服務器中測試4個文件,並且顯示結果應顯示在文本區域中。 讓我知道解決此問題的正確方法。

sh test_batch.sh

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

這些是帶有復選框的四個文件

 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>`

首先,您應該避免在網絡腳本中使用sudo做任何事情。 如果有人決定在$ _POST中向服務器提供字符串“ && rm -rf /” ,並將其串聯到sudo sh test_batch.sh $ dir。$ value字符串中怎么辦? 那將是非常糟糕的一天。

相反,考慮將test_batch.sh所做的任何事情實現到某種工作腳本中,以處理排隊到該請求的請求(您可以使用Node.JS在Perl,PHP中進行此操作...有幾種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM