网页上的“ps aux”输出?

use*_*378 6 php shell exec

我想知道这种放入ps aux数组然后在网络上显示的安全方法吗?或者可以做些什么来改善它?

例子:

<table width="900px" border="1">
    <tr> 
        <td> PID </td>
        <td> CPU </td>
        <td> Mem </td>
        <td> Start </td>
        <td> Command</td>
    </tr>
    <?php
    exec("ps aux | grep -v grep | grep  process.php", $psOutput);
    if (count($psOutput) > 0) {
        foreach ($psOutput as $ps) {
            $ps = preg_split('/ +/', $ps);
            $pid = $ps[1];
            $cpu = $ps[2];
            $mem = $ps[3];
            $time = $ps[8];
            $command = $ps[10] . " " . $ps[11];
            echo "<tr>";
              echo "<td>" . $pid . "</td>";
              echo "<td>" . $cpu . "</td>";
              echo "<td>" . $mem . "</td>";
              echo "<td>" . $time . "</td>";
              echo "<td>" . $command . "</td>";
            echo "</tr>";
        }
    }
    ?>
</table>
Run Code Online (Sandbox Code Playgroud)

Ber*_*rak 1

我想知道将 ps aux 放入数组然后显示在网络上是否安全?或者可以做些什么来改善它?

据我所知,什么也没有。如果这是实际的代码并且命令不是根据用户输入创建的,那么除了<table width="900px">通常由 CSS 而不是 HTML 控制的事实之外,该代码绝对没有任何问题。但这就是我能想到的所有批评。

编辑:Quentin 提出了一个非常有效的观点,即在 HTML 中显示之前应该使用 htmlspecialchars。