PHP中常用函数的漏洞有哪些?
PHP中常用函数的漏洞:
extract变量覆盖漏洞
extract函数:将变量从数组导入当前符号表。在一些mvc框架中会有它的踪影
extract函数的定义: int extract(array,extract_ rules,prefix)
extract0函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。
extract_rules :
EXTR_ OVERWRITE -默认。如果有冲突,则覆盖已有的变量。
EXTR_ SKIP -如果有冲突,不覆盖已有的变量。
EXTR_ PREFIX. SAME -如果有冲突.在变量名前加上前缀prefix.
EXTR_ PREFIX. ALL -给所有变量名加上前缀prefix.
EXTR_ PREFIX. INVALID -仅在不合法或数字变量名前加上前缀prefix.
EXTR_ IF. EXISTS -仅在当前符号表中已有同名变量时.覆盖它们的值。其它的都不处理。
EXTR_PREFIX_IF _EXISTS -仅在当前符号表中已有同名变量时.建立附加了前缀的变量名其它的都不处理。
EXTR_REFS -将变量作为引用提取。导入的变量仍然引用了数组参数的值。
我们以代码为例演示extract函数对当前覆盖表的影响:
我们首先建立一个文件,比如当前覆盖表中有一个name,然后我们输出这个变量,
<?php $name = '好久不见'; echo $name; ?>
代码结果如下:
然后我们使用extract函数,然后我们定义一个数组,默然情况下是会覆盖当前覆盖表中的变量,也就意味着我们刚刚写的《好久不见》会被覆盖掉,代码如下:
<?php $name = '好久不见'; extract(array('name'=>'再见')); echo $name; ?>
代码结果如下:
推荐学习:《PHP视频教程》
以上就是PHP中常用函数的漏洞有哪些?的详细内容,更多请关注其它相关文章!
上一篇: CSS选择器之简单选择器、上下文选择器、伪类选择器小结
下一篇: mysql怎么删除表字段