PHP代码审计-超全局变量

举报
亿人安全 发表于 2023/05/28 21:54:45 2023/05/28
【摘要】 .审计中涉及的超全局变量全局变量和超全局变量全局变量全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似global $a;超全局变量超全局变量作用域在所有脚本都有效。所以,在函数可直接使用。比如 $_GET,$_SERVER都是超全局变量。除$_GET,$_POST,$_SERVER,$_COOKIE等之外的超全局变量保...

.审计中涉及的超全局变量

全局变量和超全局变量

全局变量

全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不

会到函数内部。所以在函数内部使用的时候常常看到类似global $a;

超全局变量

超全局变量作用域在所有脚本都有效。所以,在函数可直接使用。比如 $_GET,

$_SERVER都是超全局变量。除$_GET,$_POST,$_SERVER,$_COOKIE等之外的超全局

变量保存在$GLOBALS数组中

超全局变量

$GLOBALS

$_SERVER

$_REQUEST

$_POST

$_GET

$_FILES

$_ENV

$_COOKIE

$_SESSION

$GLOBALS

global

Global的作用是定义全局变量,只应用于当前网页(包括include

和require的所有文件)而不是整个网站

• $GLOBALS

$GLOBALS用于在 PHP 脚本中的任意位置访问全局变量(从函

数或方法中均可)

$_SERVER

这种超全局变量保存关于报头、路径和脚本位置的信息等。

$_POST $_GET

• POST(隐藏传参)

$_POST向服务器传送数据。将表单内各个字段与其内容放置在

HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看

不到这个过程

• GET (URL传参)

$_GET从服务器上获取数据,把参数数据队列加到提交表单的

ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到

$_REQUEST

• $_REQUEST

• php中$_REQUEST可以获取以POST方法和GET方法提交的数据

• 比较慢

尽量不要使用$_REQUEST,应该从$_GET,$_POST,

$COOKIE,$_ENV,$_SERVER等变量中取出需要的值

$_FILES

• $_FILES['file']['name'] 显示客户端文件的原名称。

• $_FILES['file']['type'] 文件的 MIME 类型,例如"image/gif“

• $_FILES['file']['size'] 已上传文件的大小,单位为字节。

• $_FILES['file']['tmp_name'] 储存的临时文件名,一般是系统默认。

• $_FILES['file']['error'] 该文件上传相关的错误代码。

$_SESSION

• 当前脚本可用 SESSION 变量的数组。

• $HTTP_SESSION_VARS 包含相同的信息(4.1.0已废弃),但它不是一个超全局变量。

注意:$HTTP_SESSION_VARS 和 $_SESSION 是不同的变量,PHP 处理它们的方式不同

$_COOKIE

• 通过 HTTP Cookies 方式传递给当前脚本的变量的数组

• $HTTP_COOKIE_VARS 包含相同的信息,但它不是一个超全局变量

注意: $HTTP_COOKIE_VARS 和 $_COOKIE 是不同的变量,PHP 处理它们的方式不同

$_ENV

$_ENV包含服务器端环境变量的数组,可在PHP程序的任何地方直接访问

$_ENV只是被动的接受服务器端的环境变量转换为数组元素

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。