我最近了解到可以将数组注入 PHP GET 变量来执行代码?
.php?a[]=asd&a[]=asdasd&b[]=$a
这就是我得到的例子。我不知道它是如何工作的,并且想知道这是否可能?
PHP 将解析查询字符串,并将这些值注入到$_GET
超全局数组(同样适用于$_POST
如果这是使用 POST 的形式完成的,顺便说一句).
就你而言,$_GET
数组将包含这个:
array
'a' =>
array
0 => string 'asd' (length=3)
1 => string 'asdasd' (length=6)
'b' =>
array
0 => string '$a' (length=2)
PHP 会将查询字符串中传递的每个值放入$_GET
数组,如果有必要,创建子数组[]
在查询字符串中使用。
但这不会导致任何类型的“代码执行”:只要您正确处理输入(即不信任输入和使用eval
关于它,或任何像这样的坏主意),不存在代码注入的风险。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)