PHP安全(二)PHP变量覆盖
2022/3/29 22:26:55
本文主要是介绍PHP安全(二)PHP变量覆盖,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
记录笔记之前先说明一下什么叫做变量覆盖漏洞;
变量覆盖漏洞是指自定义的参数替换原有变量值的情况,如$$使用不当,extract函数使用不当,parse_str() 函数使用不当,import_request_variables() 使用不当,开启了全局变量注册等。
1、全局变量
顾名思义是全局都可以使用的变量,任何的对象或者是函数都可以使用,与之对应的局部变量,只能在定义的类或方法内部使用。
2、$$变量覆盖问题
在PHP中变量是以$符号开头命名的,所以$$可变变量就是以一个变量的值作为一个变量的名。直接说可能不是很好理解,举一个例子来说明。
<?php
$a="qwe";
$qwe=1232;
var_dump($$a);
?>
运行结果int(1232)
3、extract()函数变量覆盖
extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。
<?php
$b = array("a" => "one","b" => "tow");
extract($b);
echo "\$a = $a\n\$b = $b";
?>
运行结果
$a = one $b = tow
这里补充一下->和=> 的意义和区别
->用来引用对象的成员(属性与方法);=>符号来分隔键和值,左侧表示键,右侧表示值。简单来说就是给别人起一个外号,用外号来代表某个人,提起他的外号,就可以知道他是谁的意思。
4、parse_str函数变量覆盖
parse_str() 函数用于把查询字符串解析到变量中,如果没有array 参数,则由该函数设置的变量将覆盖已存在的同名变量。
5、import_request_variables函数变量覆盖
import_request_variables() 函数将 GET/POST/Cookie 变量导入到全局作用域中。该函数在最新版本的 PHP 中已经不支持。
这篇关于PHP安全(二)PHP变量覆盖的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-29env: php: no such file or directory
- 2024-03-01php foreach break
- 2024-02-26Exception参数 php-icode9专业技术文章分享
- 2023-12-30PHP文件批量上传-icode9专业技术文章分享
- 2023-12-30thinkphp6 withJoin-icode9专业技术文章分享
- 2023-12-27MagicArray:像php一样,让Go业务代码不再卷!
- 2023-11-18centos7编译安装PHP教程。
- 2023-11-18centos7编译安装phpMyAdmin教程。
- 2023-10-13唱衰这么多年,PHP 仍然还是你大爷!
- 2023-07-25PHP8,性能更好,语法更好,类型安全更完善