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 程序执行函数 把字符串转码为可以在 shell 命令里使用的参数php 程序执行函数 shell 元字符转义php 程序执行函数 执行一个外部程序php mysql 函数 转义 sql 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集php 别名和过时的 mysqli 函数 在主/从机制中强制在从机上执行一个查询php oci8 函数 返回语句执行后受影响的行数php 程序执行函数 执行外部程序并且显示原始输出php pcntl 函数 在当前进程空间执行指定程序php pcntl 函数 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。php 杂项 函数 检查php的语法(并执行)指定的文件php 程序执行函数 关闭由 proc open 打开的进程并且返回进程退出码php 程序执行函数 获取由 proc open 函数打开的进程的信息php 程序执行函数 修改当前进程的优先级php 程序执行函数 执行一个命令,并且打开用来输入/输出的文件指针。php 程序执行函数 杀除由 proc open 打开的进程php 函数处理 函数 注册一个会在php中止时执行的函数php 程序执行函数 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。php 程序执行函数 执行外部程序,并且显示输出php 程序执行 程序执行函数
关注编程学问公众号