目录

  1. 1. eval函数与php短标签与反引号命令执行
    1. 1.1. 前言
    2. 1.2. eval()函数

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

记一次对eval函数和php短标签的探索

2023/3/28 Web PHP
  |     |   总文章阅读量:

eval函数与php短标签与反引号命令执行

前言

<?php
eval('?><?=`dir`;?>');
?>
    注:因为博主在Windows环境进行测试,因此这里使用dos指令

探究这段语句的执行原理

  • eval()函数的插入机制
  • 反引号的作用情况
  • 短标签<?=的运用
  • 分号与结束符?>的不同

eval()函数

我们知道,eval函数的作用是把字符串作为PHP代码执行

eval ( string $code )

code是需要被执行的字符串

但是值得注意的是:

代码不能包含打开/关闭 PHP tags。比如,

'echo "Hi!";' 不能这样传入: '<?php echo "Hi!"; ?>'。但仍然可以用合适的 PHP tag 来离开、重新进入 PHP 模式。比如 'echo "In PHP mode!"; ?>In HTML mode!<?php echo "Back in PHP mode!";'

除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如 'echo "Hi!"' 会导致一个 parse error,而 'echo "Hi!";' 则会正常运行。

return 语句会立即中止当前字符串的执行。