【问题标题】:"ps aux" output on the webpage?网页上的“ps aux”输出?
【发布时间】:2011-07-08 09:57:18
【问题描述】:

我想知道这种将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>

【问题讨论】:

    标签: shell exec php


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:
      1. 在 HTML 文档中显示文本时始终使用 htmlspecialchars。有人可能在命令行中使用了 &lt;&amp; 字符
      2. ps aux 将显示系统上运行的所有命令——包括有人在命令行中包含密码的任何地方
      3. 不是安全问题,但已弃用的 HTML 宽度属性采用一个整数,后跟一个可选的 % 字符,它不采用 CSS 长度。
      4. 也不是安全问题,但您应该为表格标题使用table heading 元素。

      【讨论】:

      • 他已经在搜索“process.php”,所以代码不会显示“所有命令”,只会显示包含 process.php 的命令。不过关于 htmlspecialchars 的观​​点很好。
      【解决方案3】:

      要改进它,您可以稍微简化一下您的执行。

      • ps 可以使用 -C 选项为您查找进程名称。
      • 您可以使用 -o 选项手动列出要读取的列。这样,即使 ps aux 命令发生更改或其他任何情况,您也将始终获得可预测的输出。

      ps -C php -o args cpu | grep 进程.php

      查看 ps 手册页中的“标准格式说明符”以获得所需的所有列。

      【讨论】:

        猜你喜欢
        • 2013-02-12
        • 2019-03-29
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        • 2012-01-11
        • 2022-10-21
        • 2012-03-11
        相关资源
        最近更新 更多