常见的管道符:
Windows:
|
直接执行后面的语句||
如果前面出错(即为false),就执行后面的语句(前面只能为假)&
如果前面的语句为假则直接执行后面的语句(前面可真可假)&&
如果前面的语句为假,则直接出错,且不执行后面的语句(前面只能为真)
Linux:
;
执行完前面再执行后面|
显示后面语句的执行结果||
前面语句出错时,执行后面的语句&
如果前面的语句为假则直接执行后面的语句(前面可真可假)&&
如果前面的语句为假,则直接出错,且不执行后面的语句(前面只能为真)
命令执行简介
程序如果提供执行 命令的功能
比如提供了ping的功能: 输入 ping | dir
, 利用了管道符执行了dir
php中常见的执行系统 命令的函数:
system, exec, shell_exec, passthru, popen, proc_popen
修复建议
- 尽量不要使用系统命令执行函数
- 对客户端提交的变量进行过滤和检测
- 使用动态函数之前,确保使用的函数是置顶的函数之一
- 对php来说,不能完全控制的危险函数最好不要使用