PHP代码审计,安全漏洞挖掘简要记录
PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中
都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
超全局变量都如下:
$GLOBALS
$GLOBALS 超级全局变量数组可以认为是超级全局变量的超集,包含全局作用域
内的所有变量。$GLOBALS这种全局变量用于在PHP脚本中的任意位置访问全局变
量(从函数或方法中均可),PHP在名为$GLOBALS[index] 的数组中存储了所有
全局变量。变量的名字就是数组的键。执行下面的代码可以查看$GLOBALS中所有
的变量。
print ' <pre>' ;
print_r ($GLOBALS);
print ' </pre>' ;
$_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。比如:
$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.xxx.com)。
$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。
$_GET
$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
$_POST
$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。
$_POST 也常用于传递变量。
$_FILES
$_FILES超级全局变量包含通过POST方法向服务器上传的数据的有关信息。
$_COOKIE
$_COOKIE超级全局变量存储了通过HTTP cookie传递到脚本的信息。
$_SESSION
$_SESSION 超级全局变量包含与所有会话有关的信息。注册会话信息能为
你提供便利,这样就能在整个网站中引用这些会话信息,而无需通过GET
或POST显示的传递数据。
$_REQUEST
$_REQUEST 用于收集 HTML 表单提交的数据。
$_ENV
$_ENV超级全局变量提供PHP解析所在服务器环境的有关信息。此数组中的变
量包括:
$_ENV[ 'HOSTNAME' ] 服务器的主机名
$_ENV[ 'SHELL' ] 系统 shell
regeister_globals=off
register_globals 是php中的一个控制选项,可以设置成off或者on ,默认为off
1 全局变量
PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中
都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
超全局变量都如下:
$GLOBALS
$GLOBALS 超级全局变量数组可以认为是超级全局变量的超集,包含全局作用域
内的所有变量。$GLOBALS这种全局变量用于在PHP脚本中的任意位置访问全局变
量(从函数或方法中均可),PHP在名为$GLOBALS[index] 的数组中存储了所有
全局变量。变量的名字就是数组的键。执行下面的代码可以查看$GLOBALS中所有
的变量。
print ' <pre>' ;
print_r ($GLOBALS);
print ' </pre>' ;
$_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。比如:
$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
$_SERVER['GATEWAY_INTERFACE'] 返回服务器使用的 CGI 规范的版本。
$_SERVER['SERVER_ADDR'] 返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 返回当前运行脚本所在的服务器的主机名(比如 www.xxx.com)。
$_SERVER['SERVER_SOFTWARE'] 返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER['REQUEST_METHOD'] 返回访问页面使用的请求方法(例如 POST)。
$_GET
$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
$_POST
$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。
$_POST 也常用于传递变量。
$_FILES
$_FILES超级全局变量包含通过POST方法向服务器上传的数据的有关信息。
$_COOKIE
$_COOKIE超级全局变量存储了通过HTTP cookie传递到脚本的信息。
$_SESSION
$_SESSION 超级全局变量包含与所有会话有关的信息。注册会话信息能为
你提供便利,这样就能在整个网站中引用这些会话信息,而无需通过GET
或POST显示的传递数据。
$_REQUEST
$_REQUEST 用于收集 HTML 表单提交的数据。
$_ENV
$_ENV超级全局变量提供PHP解析所在服务器环境的有关信息。此数组中的变
量包括:
$_ENV[ 'HOSTNAME' ] 服务器的主机名
$_ENV[ 'SHELL' ] 系统 shell
regeister_globals=off
register_globals 是php中的一个控制选项,可以设置成off或者on ,默认为off