在“echo(”);”中执行php命令通信


executing a php command inside an `echo("");` comman

我想知道是否可以让php命令回显一个全新的php集。

<?php
$phpcmd=$_POST["phpcmd"];
echo "<?".$phpcmd."?>";
?>
<form action="" method="post">
<input type="text" value="<?echo($phpcmd)?>" name="phpcmd">
<input type="submit">
</form>

您可以使用:

eval($phpcmd);

但是

我强烈建议你不要,想想这样的东西的安全风险,恶意用户使用这样的脚本可能会造成巨大的损害。

正如PHP文档所述:

eval()语言构造非常危险,因为它允许执行任意PHP代码。因此,不鼓励使用它。如果你已经仔细验证了除了使用这个之外没有其他选择构造,特别注意不要传递任何用户提供的数据在没有事先对其进行适当验证的情况下将其插入。

查看本文以了解有关eval()函数的更多信息。