8.4 PHP代码解析标签

PHP有几种解析标签的写法来标识PHP代码,比如最标准的<?php?>,当PHP解析器找到这个标签的时候,就会执行这个标签里面的代码,实际上除了这种写法外还有一些标签,分别如下:

1)脚本标签 :<script language="php">...</script>,这种方式写法有点像JavaScript,不过也是可以正常解析PHP代码。

2)短标签 :<?…?>,使用短标签前需要在php.ini中设置short_open_tag=on,默认是on状态。

3)asp标签 :<%…%>,在PHP 3.0.4版后可用,需要在php.ini中设置asp_tags=on,默认是off。

因为有的程序在后台配置模板的时候,禁止提交<?php?>这样的标签来执行PHP代码,但是大部分程序会存在过滤不全的问题,所以这些各式各样的写法常常用于留后门以及绕过Web程序或者waf的防护写入webshell。

我们来测试脚本标签方式,测试代码如下:


<script language="php">

phpinfo
()

</script>

执行后如图8-6所示。

图 8-6

可以看到PHP代码可以正常解析执行。