escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmdshell 元字符转义

说明

escapeshellcmd ( string $command ) : string

escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec()system() 函数,或者 执行操作符 之前进行转义。

反斜线(\)会在以下字符之前插入: &#;`|*?~<>^()[]{}$\, \x0A\xFF'" 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 %! 字符都会被空格代替。

参数

command

要转义的命令。

返回值

转义后的字符串。

范例

Example #1 escapeshellcmd() example

<?php
// 我们故意允许任意数量的参数
$command './configure '.$_POST['configure_options'];

$escaped_command escapeshellcmd($command);
 
system($escaped_command);
?>

Warning

escapeshellcmd() 应被用在完整的命令字符串上。 即使如此,攻击者还是可以传入任意数量的参数。 请使用 escapeshellarg() 函数 对单个参数进行转义。

更新日志

版本 说明
5.4.43, 5.5.27, 5.6.11 感叹号会被空格所替换。

参见

相关文章
php 程序执行 预定义常量php apache 函数 对指定的 uri 执行部分请求并返回所有有关信息php 程序执行函数 把字符串转码为可以在 shell 命令里使用的参数php 程序执行函数 shell 元字符转义php 杂项 函数 把字符串作为php代码执行php 程序执行函数 执行一个外部程序php 程序执行函数 执行外部程序并且显示原始输出php pcntl 函数 在当前进程空间执行指定程序php pcntl 函数 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。php 杂项 函数 检查php的语法(并执行)指定的文件php 程序执行函数 关闭由 proc open 打开的进程并且返回进程退出码php 程序执行函数 获取由 proc open 函数打开的进程的信息php 程序执行函数 修改当前进程的优先级php 程序执行函数 执行一个命令,并且打开用来输入/输出的文件指针。php 程序执行函数 杀除由 proc open 打开的进程php 程序执行函数 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。php 字符串 函数 反引用一个使用 addcslashes 转义的字符串php 程序执行函数 执行外部程序,并且显示输出php 杂项 函数 延缓执行若干秒和纳秒php 程序执行 程序执行函数
关注编程学问公众号