background image

 
if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
    exit('Request tainting attempted.');
}
 
$_REQUEST 这个超全局变量的值受 php.ini 中 request_order 的影响,在最新的 php5.3.x 系
列中,

request_order 默认值为 GP ,也就是说默认配置下 $_REQUEST 只包含$_GET 和

$_POST 而不包括$_COOKIE。通过 COOKIE 就可以提交 GLOBALS 变量。
 
临时解决方法:
 
更改

php 5.3.x 里的 php.ini 设置,设置 request_order 为 GPC 。

 
补充:
string substr ( string string, int start [, int length] )
其中

start 如果为负,则从字符串最后一个字符开始向回倒数到 start 字符,作为起始点。

如果

length 为负,则从字符串最后一个字符开始向回倒数到 length 字符,作为终点。

其中,如果字符串长度小于或等于

start,则返回 false。

如果起点位置超过终点位置,则返回一个空字符串。
 
set_magic_quotes_runtime(0)

php.ini 的配置文件中,有个布尔值的设置,就是 magic_quotes_runtime,当它打开时,php

的大部分函数自动的给从外部引入的

(包括数据库或者文件)数据中的溢出字符加上反斜线。

当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用
set_magic_quotes_runtime() 与 get_magic_quotes_runtime() 设 置 和 检 测 php.ini 文 件 中
magic_quotes_runtime 状态。
为 了 使 自 己 的 程 序 不 管 服 务 器 是 什 么 设 置 都 能 正 常 执 行 。 可 以 在 程 序 开 始 用
get_magic_quotes_runtime 检测设置状态秋决定是否要手工处理,或者在开始(或不需要自
动转义的时候)用

set_magic_quotes_runtime(0)关掉。

magic_quotes_gpc 设置是否自动为 GPC(get,post,cookie)传来的数据中的'"\加上反斜线。可以

get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用 addslashes()函

数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是
单引号(

')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

 
error_reporting(0)
// Turn off all error reporting
error_reporting(0);
即关闭所有错误输出。