国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php 安全register globals設(shè)置為TRUE的危害

2024-05-04 21:47:18
字體:
供稿:網(wǎng)友

關(guān)于register globals設(shè)置為TRUE的危害,應(yīng)該很多人看過把register globals設(shè)置為on是非常危險(xiǎn)的,但是怎么危險(xiǎn)法呢?應(yīng)該很多新手不知道的!所以我就簡單說說register globals設(shè)置為on的危害吧!

先看看下面的代碼:在config.php文件中有一下的代碼: 

  1. <?php 
  2. $GLOBALS[‘host’] = 'localhost'
  3. $GLOBALS[‘username’] = 'root'
  4. $GLOBALS[‘password’] = ''
  5. $GLOBALS[‘database’] = 'test'
  6. ?> 

在db.php中有以下代碼: 

  1. <?php 
  2. require_once 'config.php'
  3. function db_connect() { 
  4. $db=mysql_connect($GLOBALS['host'], $GLOBALS['username'], $GLOBALS['password']); 
  5. mysql_select_db($GLOBALS['database'], $db); 
  6. return $db
  7. ?> 

很明顯加入上面的代碼是在register globals設(shè)置為on的時(shí)候的話,看看有什么效果:

在瀏覽器中輸入:http://********/index.php?GLOBALS=***那你上面的代碼就執(zhí)行錯(cuò)誤了!因?yàn)?GLOBALS的數(shù)據(jù)已經(jīng)修改了!當(dāng)register globals設(shè)置為on的時(shí)候,?GLOBALS=***這樣的形式會轉(zhuǎn)換成$GLOBALS = ***的形式的!!所以非常危險(xiǎn)。

雖然在這個(gè)例子中危害不大,但是在一些需要用到$GLOBALS全局變量的地方我們都應(yīng)該檢測register globals是否設(shè)置為on,可以用以下代碼來檢測一下

  1. function wp_unregister_GLOBALS() { 
  2. if ( !ini_get('register_globals') ) 
  3. return
  4. if ( isset($_REQUEST['GLOBALS']) ) 
  5. die('GLOBALS overwrite attempt detected'); 
  6. // Variables that shouldn't be unset 
  7. $noUnset = array('GLOBALS''_GET''_POST''_COOKIE''_REQUEST''_SERVER''_ENV''_FILES'); 
  8. $input = array_merge($_GET$_POST$_COOKIE$_SERVER$_ENV$_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array()); 
  9. foreach ( $input as $k => $v ) 
  10. if ( !in_array($k$noUnset) && isset($GLOBALS[$k]) ) { 
  11. $GLOBALS[$k] = NULL; 
  12. unset($GLOBALS[$k]); 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 屏山县| 内江市| 朔州市| 曲靖市| 丹巴县| 淳化县| 青龙| 曲沃县| 黄梅县| 绍兴县| 上林县| 吉林市| 三江| 仁怀市| 新田县| 连江县| 色达县| 乡城县| 昆明市| 西安市| 塘沽区| 巍山| 大名县| 夏河县| 赞皇县| 洪雅县| 五常市| 大化| 淮北市| 怀来县| 沈丘县| 黎城县| 濮阳市| 峨山| 政和县| 黔江区| 广元市| 贡觉县| 岳池县| 庆元县| 镇江市|