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 ...
随机推荐
- C#泛型参数多线程与复杂参数多线程
背景:最近用多线程用的比较多自己走了一些弯路,分享出来希望大家少走弯路,C#中的多线程有两个重载,一个是不带参数的,一个是带参数的,但是即便是带参数的多线程也不支持泛型,这使得使用泛型参数多线程的时候 ...
- MySQL 性能测试经验
一.背景 近期在进行资源调度管理平台的重构工作,其中的Resource/Property数据库设计,在没有更加优化的方案前,打算沿用当前平台的数据库结构:这就需要对当前平台的数据库结构进行剖析研究,并 ...
- Kali终端美化
首先安装figlet和cowsay root@sch01ar:~# apt-get install figlet root@sch01ar:~# apt-get install cowsay 用lea ...
- spark集群配置以及java操作spark小demo
spark 安装 配置 使用java来操作spark spark 安装 tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz rm spark-2.4.0-bin-hadoo ...
- springboot成神之——监视器
Spring Boot 的监视器 依赖 配置 书写监视控制器 常用的一些内置endpoint 定义actuator/info特殊endpoint actuator/shutdown需要post请求才能 ...
- Tuple、list的区别以及dict和set
元组(Tuple): 定义方法:使用小括号() 使用方法: count:可以统计某个元组段在整个元组中出现的次数 index:可以查询某个元组段在整个元组中的元组号 name_tuple = ('xi ...
- krpano之语音介绍
语音介绍:在每进入一个场景时,播放一段该场景的语音介绍. 制作步骤: 1.定义全局事件.在关闭场景时执行stopsounds(),在打开新场景时执行automusic(). <events on ...
- Spring总结五:小结 使用spring访问servlet
使用spring访问servlet 首先先建一个web项目,并在pom.xml中引入依赖包:spring-context和jsp servlet相关包,以及tomcat插件 其次建一个spring的配 ...
- java Web 监听器Listener详解
简介 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext.HttpSession和 ServletRequest这三大域对象的创建 ...
- 并发之Striped64(l累加器)
并发之Striped64(累加器) 对于该类的实现思想: Striped64是在java8中添加用来支持累加器的并发组件,它可以在并发环境下使用来做某种计数,Striped64的设计思路 ...