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 ...
随机推荐
- 基于FORM组件学生管理系统【中间件】
目的:实现学生,老师,课程的增删改查 models.py from django.db import models # Create your models here. class UserInfo( ...
- leetcode908
int smallestRangeI(vector<int>& A, int K) { int min = INT_MAX; int max = INT_MIN; for (aut ...
- CBitmap Detach和DeleteObject的关系
注意:当使用完资源后,必须通过调用函数以释放加速器表.位图.光标.图标以及菜单所占的内存资源: 加速器表:DesteoyAcceleratorTable: 位图:DeleteObj ...
- log4j配置文件的手动加载与配置初始化
一. 本地项目: 初始化log4j的日志配置,指定到src目录下(建议用2) //1. 本地项目-属性文件配置 PropertyConfigurator.configu ...
- java中链表的数据(对象)位置交换
用LinkedList类的set方法把引用 对象换了就行 ,如 import java.util.LinkedList; public class Tffdsafsdafsad { public st ...
- C. Ray Tracing——披着搜索外衣的扩展欧几里得
[题目大意] 给你一个n*m的矩形,光线从(0,0)出发,沿右上方向以每秒根号2米的速度运动,碰到矩形边界就会反弹(符合物理规律的反弹),询问k个点,这些点都在矩形内部且不在矩形边界上,求光经过这些点 ...
- jquery触发两次onchange事件
在项目中需要给select绑定改变事件,来触发动作,但是发现改变一次select,onchange方法执行两遍 //这是那个标签,用的是我们公司内部的selectlist <select cla ...
- 189. Rotate Array 从右边开始翻转数组
[抄题]: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the ...
- 14-stringstream
C++中stringstream的使用方法和样例 原创 2016年11月06日 15:46:49 标签: string / C++ 7427 之前在leetcode中进行string和int的转化时使 ...
- 在Windows里定时执行一个Python文件
一.系统环境 操作系统:Win7 64位 二.说明 1.建立一个dos批处理文件 例: @echo off C: cd C:\work\python python aaa.py exit 2.利用Wi ...