社区
基础编程
帖子详情
global 变量在大并发环境是线程安全的吗?
superhasty
2009-03-23 12:11:49
一个网站,在一个统一入口的页面设置了一个global变量获取用户输入的参数,然后重定向到另外一个页面读取这个参数。
这种情况下会不会导致某一个用户访问时,实际处理到的global变量值是另外一个用户输入的呢?
...全文
189
12
打赏
收藏
global 变量在大并发环境是线程安全的吗?
一个网站,在一个统一入口的页面设置了一个global变量获取用户输入的参数,然后重定向到另外一个页面读取这个参数。 这种情况下会不会导致某一个用户访问时,实际处理到的global变量值是另外一个用户输入的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
syu
2009-03-24
打赏
举报
回复
global管理输入信息的确是很不当的,全局变量不可以随意乱用.
但是,global跟多用户似乎并没有什么关系?
PHP执行细度决定了每一次用户请求,都是在单独的zend虚拟机里完成操作,变量封闭,不会出现这个用户输入的信息被那个用户访问.
所谓global的共享,是指在同一个zend虚拟机内部,可以跨函数,方法的符号变量表限制,访问外域变量.但不会出现A用户得到B用户输入的信息吧.
海诗美妆
2009-03-24
打赏
举报
回复
[Quote=引用 9 楼 froole 的回复:]
不要使用global变量获取用户输入的参数
可以直接从$_REQUEST获取用户发送的信息,
global是系统的共享空间,当多用户访问的时候,不可能准确获取用户输入的信息。
如果有显示输入信息功能的话,用户A很容易得到用户B的输入信息。
[/Quote]
global变量是用来保存系统共享内容的,
例如连接数据库的实例、缓存几乎没有变化的商品分类信息等等。
但是,用户输入信息是禁止用global变量操作的,
global使用不当,的确存在安全隐患,
但是如果用global管理输入信息,那就不是按全部安全的问题了——是自掘坟墓。
PHP5以后的版本,支持了很多OOP语言功能,所以,可以通过Singleton和Registory设计模式替代global。
这样的代码更安全,也便于管理。
yctin
2009-03-24
打赏
举报
回复
[Quote=引用 7 楼 syu 的回复:]
楼上的请分清楚线程和进程的区别
[/Quote]
好好好,进程
我其实不知道国内叫什么名称 haha
海诗美妆
2009-03-24
打赏
举报
回复
不要使用global变量获取用户输入的参数
可以直接从$_REQUEST获取用户发送的信息,
global是系统的共享空间,当多用户访问的时候,不可能准确获取用户输入的信息。
如果有显示输入信息功能的话,用户A很容易得到用户B的输入信息。
Zijian_Zhang
2009-03-23
打赏
举报
回复
学习一下,呵呵。
syu
2009-03-23
打赏
举报
回复
楼上的请分清楚线程和进程的区别
yctin
2009-03-23
打赏
举报
回复
global 只在同一个线程内有效
重定向已经是另一个请求~所以是另一个线程
yua3891
2009-03-23
打赏
举报
回复
[Quote=引用 1 楼 syu 的回复:]
不会.PHP是进程级的,无法以线程的细颗粒处理元素.
所有的变量,函数,执行过程都是在单独的进程中执行,不同进程之间的变量完全封闭不会干扰.
[/Quote]
回答的 很详细。呵。
hqaht
2009-03-23
打赏
举报
回复
可以测试一下,打印出来
csfreesky
2009-03-23
打赏
举报
回复
不会
应该网
2009-03-23
打赏
举报
回复
恩。这个不用担心,是安全的。
syu
2009-03-23
打赏
举报
回复
不会.PHP是进程级的,无法以线程的细颗粒处理元素.
所有的变量,函数,执行过程都是在单独的进程中执行,不同进程之间的变量完全封闭不会干扰.
区块链之实战VM虚拟机开发
资源安全智能合约通常运行在由虚拟机提供的沙箱
环境
,我们需要对其能够使用的资源进行适度的把控。这些资源包括三类:CPU、内存、硬盘。下面我们以QA的形式对涉及到的问题进行解答—— CPU资源 Q1: 合约运行最大能...
面试 - Spring 中的 bean 是
线程安全
的吗?
面试官经常喜欢问Spring中的bean是不是
线程安全
的这个问题用来考察对Spring 中Bean作用域的理解,先说结论,Spring中的Bean不是
线程安全
的。 Spring容器中的Bean是否
线程安全
,容器本身并没有提供Bean的
线程安全
...
Python 内置类型 dict, list,
线程安全
吗?
近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑
变量
的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python 内置类型 dict,list ,tuple 是
线程安全
的。 请参考官方...
Spring框架中的单例bean是
线程安全
的吗?
结论: 不是
线程安全
的 Spring容器中的Bean是否
线程安全
,容器本身并没有提供Bean的
线程安全
策略,因此可以说Spring容器中的Bean本身不具备
线程安全
的特性,但是具体还是要结合具体scope的Bean去研究。 Spring 的 ...
Spring中的Controller和Service是
线程安全
的吗?我有点懵
结论:不是
线程安全
的Spring容器中的Bean是否
线程安全
,容器本身并没有提供Bean的
线程安全
策略,因此可以说Spring容器中的Bean本身不具备
线程安全
的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean ...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章