PHP有几种解析标签的写法来标识PHP代码,比如最标准的
<?php
…
?>
当PHP解析器找到这个标签的时候,就会执行这个标签里面的代码,实际上除了这种写法外还有一些标签
分别如下:
1)脚本标签:
<script language="php">……</script>
这种方式写法有点像JavaScript,不过也是可以正常解析PHP代码。
我们来测试脚本标签方式,测试代码如下:
<script language="php">
phpinfo()
</script>
执行后如图所示
可以看到PHP代码可以正常解析执行
2)短标签:
<?…?>
使用短标签前需要在php.ini中设置short_open_tag=on,默认是on状态。
我们来测试脚本标签方式,测试代码如下:
<?
phpinfo()
?>
执行后如图所示
3)asp标签:
<%…%>
在PHP 3.0.4版后可用,需要在php.ini中设置asp_tags=on,默认是off。
我们来测试脚本标签方式,测试代码如下:
<%
phpinfo()
%>
执行后如图所示
因为有的程序在后台配置模板的时候,禁止提交<?php ?>这样的标签来执行PHP代码,但是大部分程序会存在过滤不全的问题,所以这些各式各样的写法常常用于留后门以及绕过Web程序或者waf的防护写入webshell。