php 安全register globals设置为TRUE的危害
发布:smiling 来源: PHP粉丝网 添加日期:2013-11-28 13:56:17 浏览: 评论:0
关于register globals设置为TRUE的危害,应该很多人看过把register globals设置为on是非常危险的,但是怎么危险法呢?应该很多新手不知道的!所以我就简单说说register globals设置为on的危害吧!
先看看下面的代码:在config.php文件中有一下的代码:
- <?php
- $GLOBALS[‘host’] = 'localhost';
- $GLOBALS[‘username’] = 'root';
- $GLOBALS[‘password’] = '';
- $GLOBALS[‘database’] = 'test';
- ?>
在db.php中有以下代码:
- <?php
- require_once 'config.php';
- function db_connect() {
- $db=mysql_connect($GLOBALS['host'], $GLOBALS['username'], $GLOBALS['password']);
- mysql_select_db($GLOBALS['database'], $db);
- return $db;
- }
- ?>
很明显加入上面的代码是在register globals设置为on的时候的话,看看有什么效果:
在浏览器中输入:http://********/index.php?GLOBALS=***那你上面的代码就执行错误了!因为$GLOBALS的数据已经修改了!当register globals设置为on的时候,?GLOBALS=***这样的形式会转换成$GLOBALS = ***的形式的!!所以非常危险。
虽然在这个例子中危害不大,但是在一些需要用到$GLOBALS全局变量的地方我们都应该检测register globals是否设置为on,可以用以下代码来检测一下
- function wp_unregister_GLOBALS() {
- if ( !ini_get('register_globals') )
- return;
- if ( isset($_REQUEST['GLOBALS']) )
- die('GLOBALS overwrite attempt detected');
- // Variables that shouldn't be unset
- $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES');
- $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
- foreach ( $input as $k => $v )
- if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) ) {
- $GLOBALS[$k] = NULL;
- unset($GLOBALS[$k]);
- }
- }
Tags: php安全 register globals
相关文章
- ·PHP安全之防止.inc配置信息暴露(2014-08-21)
- ·PHP 防注入安全实现程序代码(2014-08-23)
- ·php安全之防注入详细介绍(2014-08-23)
- ·php intval() 小数时安全漏洞分析(2014-08-23)
- ·php中一些安全隐藏代码总结(2014-08-23)
- ·PHP四大安全策略(2020-10-27)
- ·XSLTProcessor 中 registerPHPFunctions 后无法调用 php 函数(2013-11-30)
- ·php提示Deprecated: Directive 'register_globals' is deprecated in PHP 5.3(2018-10-26)
- ·PHP中spl_autoload_register()和__autoload()区别分析(2020-12-14)
- ·深入理解php中$GLOBALS与global区别(2014-06-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)