将PHP exec、form和linux结合起来


Combine PHP exec, form and linux

我的大脑已经停止工作,我真的想把它结合起来:

我想在网站上获取输入,将其保存在一个变量中,并将其调用到Linux shell以生成命令。

这是我所拥有的:

<form action="action.php" method="post">
 <p>Kommando: <input type="text" name="cmd" /></p>
 <p><input type="submit" /></p>
</form>

<?php
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>

您需要使用$_POST['cmd'],而不是$command。脚本中没有名为$command的变量。

请注意: 这非常不安全。在将命令传递到shell之前,您需要对其进行大量验证,否则将面临各种可怕的糟糕黑客攻击的风险。

请阅读有关命令注入攻击的信息,永远不要将任何您不能100%确信安全的东西传递给shell。这意味着您需要同时执行白名单和黑名单,并且您可能需要一个好的WAF(web应用程序防火墙)来备份您。理想情况下,除了从几个预定义的命令中选择一个之外,您根本不会使用用户的输入