php - 结合 PHP exec、form 和 linux

标签 php 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 之前,您需要对命令进行大量验证,否则您将面临各种可怕的黑客攻击风险。

请阅读 command injection attacks并且从不传递任何你不是 100.000% 确定对 shell 安全的东西。这意味着您需要同时进行白名单和黑名单,并且您可能需要一个好的 WAF(Web 应用程序防火墙)作为后盾。理想情况下,您根本不会使用用户的输入,除非选择几个预定义命令之一。

关于php - 结合 PHP exec、form 和 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881335/

相关文章:

arrays - 尝试使用 while read 循环将结果保存到数组中

php - 一个有 3 个提交的表单;如何保留最终提交的数据?

php - 使用过滤器对 PHP 中的 MySQL 结果进行计数

php - 在 htaccess 中为用户配置文件创建重写规则

linux - Apache 子域目录到外部服务器

linux - 试图用自动键模拟 shift+end

linux - 使用 awk 解析在字段中包含逗号的制表符分隔文件

linux - 如何以优化的方式用多行替换exec文件中的字符串

php - 如何在从数据库中提取信息的下拉菜单上插入空选项?

php - 为什么要改变 Eloquent ORM 中的值?