PHP可变变量安全的实例详解

发布时间:2020-09-30编辑:脚本学堂
本文介绍下,php中有关可变变量的一些例子,以及php可变变量的安全知识,有需要的朋友参考下。

在php中,可变变量无需2次嵌套,一次即可执行!

例子:
花括号内直接就是phpinfo(),phpinfo函数是不会执行的!
 

复制代码 代码示例:
<?php
 $a = "${phpinfo()}";
 ?>

以下的几种例子,phpinfo函数执行了!
1,花括号内第一个字符是空格
 

复制代码 代码示例:
<?php
 $a = "${ phpinfo()}";
 ?>

2,花括号内第一个字符是tab
 

复制代码 代码示例:
<?php
 $a = "${    phpinfo()}";
 ?>

3,花括号内第一个字符串是注释
 

复制代码 代码示例:
<?php
 $a = "${/**/phpinfo()}";
 ?>

4,花括号内第一个字符是回车
 

复制代码 代码示例:
<?php
 $a = "${
 phpinfo()}";
 ?>

5,花括号内第一个字符是@
 

复制代码 代码示例:
<?php
 $a = "${@phpinfo()}";
 ?>

 说明:
 花括号内第一个字符是空格,tab,注释,回车和@的五种情况你能想到什么,可变变量内的花括号就是再次解析语法,然后这个解析语法的关键条件是花括号内的第一个字符!
 空格,tab,注释,回车是各种语法分析引擎中常见的分割字符,@是PHP语法的一个特殊的容错符号,所以可变变量内的花括号有这么一个规则,需要判断花括号内的内容是否为真正的代码,条件即是文本的第一个字符串是否为PHP语法解析引擎的分割字符和特殊的语法符号。

您可能感兴趣的文章:
深入PHP中的可变变量实例分析