全文检索(http://minidx.com)
posts - 9,  comments - 24,  trackbacks - 0
我们看下面这一段代码:
1 <?php
2 session_start();
3 $_SESSION['isadmin']='yes';
4 $isadmin='no';
5 echo $_SESSION['isadmin'];
6 ?>
当php.ini里配置 register_globals = Off 时,
没任何问题,
输出 yes

当php.ini里配置 register_globals = On 的时候,
第一次运行输出 yes
而刷新一下,则显示的是 no

显然这是不正常的,
这是个很奇怪的问题,
如果说是 $isadmin='no'; 改变了SESSION,
那么为什么第一次会显示yes呢?

原因:register_globals 为 On 的时候,
用import_request_variables('G')和extract($_GET)创建的变量是不会改变SESSION的。

总结:漏洞只存在于PHP配置register_globals = On的时候,定义的变量会改变同名的SESSION。
posted on 2007-11-13 23:21 minidxer 阅读(1813) 评论(5)  编辑 收藏 引用 网摘

FeedBack:
# re: PHP所有版本 SESSION 漏洞
2007-11-14 10:10 | young40
PHP Version 5.2.4

不存在这个问题

register_globals推荐设置为off
除非是为了某些老程序才设置为on

我在开发的时候一般都是要求这个设置为off
  回复  更多评论
  
# re: PHP所有版本 SESSION 漏洞
2007-11-14 10:24 | <a href=http://minidx.com>minidxer</a>
这个版本倒没试过,呵呵,估计已经修正了  回复  更多评论
  
# re: PHP所有版本 SESSION 漏洞
2007-11-14 10:42 | young40
恩刚才简单测试了下

5.24不存在问题。

  回复  更多评论
  
# re: PHP所有版本 SESSION 漏洞
2008-01-05 11:18 | ii
不要把垃圾网管的配置责任推到php身上  回复  更多评论
  
# re: PHP所有版本 SESSION 漏洞
2008-01-05 12:02 | <a href=http://minidx.com>minidxer</a>
呵呵,这个和很多像XX网管一样的PHP程序员也有很大关系吧。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航:
★★Minidx RC1.1发布,  
>>>下载点这里

>>>详细信息点这里

<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

留言簿(2)

随笔档案

Minidx

搜索

  •  

积分与排名

  • 积分 - 17588
  • 排名 - 29

最新评论

阅读排行榜

评论排行榜