php代码审计2全局变量和超全局变量
全局变量:
就是在函数外面定义的变量,不能在函数中直接使用,因为它的作用域不会到函数内部,所以在函数内部使用的时候尝尝看到类似global $a;
超全局变量:
在所有脚本都有效,所以,在函数可以直接使用,如$_GET $_SERVER都是超全局变量,变量保存在$GLOBALS数组中
超全局变量
$GLOBALS (Global作用是定义全局变量,只应用于当前网页(包括include和require的所有文件)而不是整个网站,$GLOBALS用于在php脚步中的任意位置访问全局变量(从函数或方法中均可))
$_REQUEST (可以获取post方法和get方法提交的数据,比较慢,尽量不要使用$_REQUEST,应该从$_GET,$_POST,$_COOKIE,$_ENV, $_SERVER等变量中取出需要的值)
$_GET (从服务器上获取数据,把参数数据列队加到提交表单的action属性所指的url中值和表单内各个字段一一对应,在url中可以看到)
$_ENV (包含服务端环境变量的数组,可用在php程序的任何地方直接访问,它是被动的接受服务器端的环境变量转换为数组元素)
$_SESSION (当前脚本可用session变量的数组,$HTTP_SESSION_VVARS包含相同的信息(4.1.0已废弃)但它不是一个超全局变量,和session是不同的变量,php处理它们的方式不同)
$_SERVER (保存关于报头,路径和脚本位置的信息)
$_POST (向服务器传送数据,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的utl地址,用户看不到过程)
$_FILES ($_FILES['file']['name’]显示客户端文件的原名称,
$_FILES['file']['type']文件的mime类型。例如"image/git"
$FILES['file'][‘size’]已上传文件的大小,单位为字节
$FILES['file'][‘tmp_name’]储存的临时文件名,一般是系统默认
$FILES['file'][‘error’]该文件上传相关的错误代码 )
$_COOKIE (通过http cookie方式传递给当前脚步的变量的数组,$HTTP_COOKIE_VARS包含相同的信息,但它不是一个超全局变量,而且它和$_COOKIE是不相同的变量,php处理它们的方式不同)
php代码审计2全局变量和超全局变量的更多相关文章
- PHP全局变量,超全局变量
php中有许多超全局变量,这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $variable; 就可以访问它们. 这些超全局变量是: $GLOBALS 引用全局 ...
- php 全局变量和超全局变量
global 全局变量(在当前页面全部地方有效) $GLOBALS['name'] 超全局变量(在整个网站全部地方有效) 一个包含了全部变量的全局组合数组.变量的名字就是数组的键.还有_GET,_PO ...
- PHP的九个超全局变量
1. 什么是超全局变量 PHP官网:超全局变量 超全局变量就是在全部作用域中始终可用的内置变量. 全局作用域.函数作用域都可以使用的PHP内置变量. 在函数或方法中无需执行 global $varia ...
- PHP代码审计2-常用超全局变量,常用命令注入,常用XSS漏洞审计,文件包含
超全局变量 $GLOBALS — 引用全局作用域中可用的全部变量$_SERVER — 服务器和执行环境信息$_GET — HTTP GET 变量$_POST — HTTP POST 变量$_FILES ...
- 记录PHP的超全局变量$_SERVER
$_SERVER是PHP中十分实用的超全局变量,在开发可移植的网站的时候会变得很有用. 下面我记录一下我自己常用到的几个变量 1.$_SERVER['SERVER_NAME']:记录了网站的域名. 2 ...
- PHP变量入门教程(2)超全局变量,总共9个
PHP 超全局变量 $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量.该数组的键标为全局变量的 名称.从 PHP 3 开始存在 $GLOBALS 数组. $_SERVER 变量由 ...
- PHP超全局变量
PHP提供了九种超全局变量(数组) 1 $_GET //地址栏上获得的值 2 $_POST //POST表单发送的数据 3 $_REQUEST //GET和POST的内容全都有 4 $_SERVER ...
- php预定义变量,超全局变量,魔术方法,特殊函数变量使用
<?php /* * 本代码全部为测试函数代码,部分注释和写实例 * * 修改php.ini variables_order=”EGPCS” * 请注意$_REQUEST在优先级传参的时候会造成 ...
- PHP中超全局变量$GLOBALS和global的区别
一.超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKI ...
随机推荐
- mybatis 动态sql语句(3)
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: 1. if 语句 (简单的条件判断) 2. ...
- 仿照admin写一个startk组件
settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.conten ...
- Linux下zip格式文件的解压缩和压缩
Linux下zip格式文件的解压缩和压缩 Linux下的软件包很多都是压缩包,软件的安装就是解压缩对应的压缩包.所以,就需要熟练使用常用的压缩命令和解压缩命令.最常用的压缩格式有.tar.gz/tgz ...
- Clean小程序(控件消息)
一 . 准备工作 创建一个基于对话框的MFC项目 删除对话框上的工具 二 . 实现将seven图片贴到上面,按一下则换一张图片 1.在资源视图中添加位图资源,通过属性修改图片ID 2.将对话框拉长,防 ...
- Python的Flask框架使用Redis做数据缓存的配置方法
flask配置redis 首先得下载flask的缓存插件Flask-Cache,使用pip下载. sudo pip install flask_cache 为应用扩展flask_cache app ...
- SpringDataRedis操作Redis简单案例
Jedis Jedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用.可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis.SRP等等,推荐使 ...
- linux tcpdump
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- - description 方法作用
自定义一个Person类 @interface Person : NSObject { int _age; double _height; double _weight; NSString *_nam ...
- Stream01 定义、迭代、操作、惰性求值、创建流、并行流、收集器、stream运行机制
1 Stream Stream 是 Java 8 提供的一系列对可迭代元素处理的优化方案,使用 Stream 可以大大减少代码量,提高代码的可读性并且使代码更易并行. 2 迭代 2.1 需求 随机创建 ...
- SpringBoot15 sell01 项目创建、MySQL数据库连接、日志配置、开发热部署、商品信息模块
项目软件版本说明: jdk: 1.8 springboot: 2.0.1 mysql: 5.7 1 项目创建 创建一个SpringBoot项目即可,创建是勾选 web jpa mysql 这三个依赖就 ...