先看这一段简单的代码
<?php
session_start();$_SESSION[‘isadmin’]=’yes’;$isadmin=’no’;echo $_SESSION[‘isadmin’];?>
当php.ini里配置register_globals = Off 时,
没任何问题,
输出yes但是
当php.ini里配置register_globals = On 的时候,
第一次运行输出yes
而刷新一下,则显示的是no显然这是不正常的,
这是个很奇怪的问题,
如果说是$isadmin=’no’; 改变了SESSION,
那么为什么第一次会显示yes呢?都知道:当配置register_globals = On 的时候,
通过xxx.php?id=123 访问时,程序会自动创建变量id
那么自动创建的变量会不会改变SESSION呢?
测试代码
<?php
//xxx.php
session_start();
echo $_SESSION[‘id’];
?>
通过xxx.php?id=123 访问,没任何输出,
还好,不然不知道将有多少
采用SESSION 做登录的
而PHP配置register_globals 为On 的网站
将被随便登录。还有两个常用的函数import_request_variables() 和extract()
import_request_variables — 将GET/POST/Cookie 变量导入到全局作用域中
extract —  从数组中将变量导入到当前的符号表
<?php
//xxx.phpimport_request_variables(‘G’);
echo $id;?>
当通过xxx.php?id=123访问的时候,
就算register_globals 设为Off
也是会输出123extract($_GET) 与import_request_variables(‘G’) 功能相似那么试试import_request_variables() 与extract()创建的变量会不会影响SESSION

呢?
测试代码
<?php
//xxx.php
session_start();import_request_variables(‘G’);echo $_SESSION[‘id’];
?>

当通过xxx.php?id=123访问程序,
没有输出,再用extract($_GET)代替import_request_variables(‘G’)测试,
还是没输出,这一点又很奇怪了,因为测试
<?php
session_start();
$arr=array(‘id’=>123);
extract($arr);
echo $_SESSION[‘id’];
?>
register_globals 为On 时
会输出123看来同样是数组,
extract 处理$_GET 与处理定义的数组
用的是不一样的方法。结论:
register_globals 为On 的时候,
用import_request_variables(‘G’)和extract($_GET)创建的变量是不会改变SESSION的。总结:漏洞只存在于PHP配置register_globals = On的时候,定义的变

量会改变同名的SESSION。

转载于:https://www.cnblogs.com/anbus/p/9988552.html

PHP全局变量与SESSION 漏洞(global 与 session)相关推荐

  1. mysql 如何修改wait_timeout,interactive_timeout ,和 session ,global 有什么关系

    最近程序出现这样的问题 The last packet successfully received from the server was 38251886 milliseconds ago. The ...

  2. php session gc_maxlifetime,PHPsession 有效期 session.gc_maxlifetime

    PHPsession 有效期 session.gc_maxlifetime 一个已知管用的方法是, 使用 session_set_save_handler, 接管所有的 session 管理工作, 一 ...

  3. php session存到redis,php Session存储到Redis的方法

    php Session存储到Redis的方法 当然要写先安装php的扩展,可参考这篇文章:Redis及PHP扩展安装修改php.ini的设置 复制代码 代码如下: session.save_handl ...

  4. spring session 退出登录 清理session

    2019独角兽企业重金招聘Python工程师标准>>> spring session 退出登录 清理session 博客分类: spring /*** Allows creating ...

  5. java session 作用范围_ssm项目session使用及其作用域问题

    这两天由于自己在前端用到ajax发起异步更新请求,发现ajax会暴露后端的接口地址,这个问题当然是避免不了的啦,前端都是明文.可怜于是就在百度.谷歌.QQ群里各种查询各种提问题,都说只能通过安全验证去 ...

  6. Spring Session - Cookie VS Session VS Token 以及 Session不一致问题的N种解决方案

    文章目录 Cookie VS Session VS Token History Cookie Session Token Session不一致问题 Session不一致解决方案 nginx sessi ...

  7. ajax得到session,Ajax如何使用Session

    在Ajax中有时会使用到Session,在aspx.cs文件这样获取: string name = Session["name"]; 但是在Ajax中就不能这样获取Session, ...

  8. Nhibernate中session的状态与session.connection.state状态的差别的解释

    在项目中用到了nhibernate,但是需要判断数据连接的状态,在NHIbernate的文档中找了半天,英文的中文的都看了一遍,都没找到相关的说明 .后来在Hibernate的论坛上才找到了一些说明. ...

  9. Cookie和Session-学习笔记03【Session快速入门、Session细节】

    Java后端 学习路线 笔记汇总表[黑马程序员] Cookie和Session-学习笔记01[Cookie_快速入门.Cookie_细节] Cookie和Session-学习笔记02[Cookie案例 ...

  10. java session创建_request创建session

    如何在 Java 中创建 session ? 使用request对象获取session,然后进行操作. 1,引入包servlet-api.jar . 2,使用request获取session:Http ...

最新文章

  1. Python极简入门:数据类型、条件语句、循环语句、异常处理
  2. C# 编程实现非自相交多边形质心
  3. dayjs​​​​​​​文档
  4. 超级计算机子系统,大规模并行巨型机的并行I/O子系统
  5. 软连接与硬链接的区别,以及如何删除软链接
  6. python scrapy框架 抓取的图片路径打不开图片_Python中Scrapy爬虫图片处理详解
  7. 【转载】解决telnet无法连接 Connection refused
  8. 别再透支你的社交信用了
  9. studioone机架效果模板_studioone3机架效果包
  10. iShot--免费Mac截图工具
  11. bugzilla perl mysql apache windows,windows下配置bugzilla
  12. 【机器学习基础】无监督学习(1)——PCA
  13. Java实现 LeetCode 37 解数独
  14. 腾讯云DDoS攻击防护指南
  15. html鼠标移入显示图片动画,HTML5+CSS3鼠标移入移出图片生成随机动画_html/css_WEB-ITnose...
  16. 防电脑辐射的方法,电脑防辐射技巧
  17. 青蛙过河(二分+并查集)
  18. 《易经》否、泰两卦的启示---让人饱受困扰的沟通问题
  19. lvds传输距离标准_信号链基础知识(第 37 部分):LVDS——低压差分信号传输
  20. ResNet50 ResNeXt-50(32x4d)

热门文章

  1. 我的世界java版怎么打开聊天栏_我的世界JAVA版才有的隐藏模式只有开发者才知道怎么进入...
  2. nyoj1058部分和问题(简单基础易上手的dfs)
  3. python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
  4. python modules_python—模块-
  5. linux有名管道 复用,Linux进程间通信(九)---综合实验之有名管道通信实验
  6. 计算机应用怎么写,计算机应用专业描述怎么写
  7. TableView全展开实现ContentSizedTableView
  8. 算法:回溯十四 Restore IP Addresses数字字符串还原为IP地址(2种解法)
  9. php_eol为什么没有换行,PHP PHP_EOL 换行符
  10. 图解Python机器学习pdf 中日双语 第1页