我的大脑停止工作了,我真的很想把它们结合起来:
我想在网站上获取输入,将其保存在一个变量中,然后将其调用到 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 之前,您需要对命令进行大量验证,否则您将面临各种可怕的黑客攻击风险。
请阅读 command injection attacks并且从不传递任何你不是 100.000% 确定对 shell 安全的东西。这意味着您需要同时进行白名单和黑名单,并且您可能需要一个好的 WAF(Web 应用程序防火墙)作为后盾。理想情况下,您根本不会使用用户的输入,除非选择几个预定义命令之一。
关于php - 结合 PHP exec、form 和 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881335/