禁用cookie后,使用session

禁用Cookie后,Session还能用吗?揭秘3种解决方案 通过本文的详细介绍,你应该已经明白了为什么禁用Cookie后,Session仍然可以使用。通过URL重写、隐藏表单字段或使用Token + LocalStorage等方法,我们可以在客户端禁用Cookie的情况下,继续保持用户的会话状态。希望这篇文章对你有所帮助!如果有任何问题或建议,欢迎在评论区留言交流!😊✨。 阅读详情

禁用cookie后,使用session
Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。
但为什么禁用Cookie就不能得到Session呢?
因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到Session了。

是不是Cookie让禁用了,Session就一定不能用了呢?

在PHP中,通过相关的配置,可以让Session不依赖Cookie而存在。这是因为:
Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session
Session,储存于服务器端(默认以文件方式存储Session),根据客户端提供的Session ID来得到用户的文件,取得变量的值,Session ID可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的URL的“?”后面的部分)来传送给服务器,然后服务器读取Session的目录……。也就是说,Session ID是取得存储在服务上的Session变量的身份证。
当代码session_start();运行的时候,就在服务器上产生了一个Session文件,随之也产生了与之唯一对应的一个Session ID,定义Session变量以一定形式存储在刚才产生的Session文件中。通过Session ID,可以取出定义的变量。
跨页后,为了使用Session,你必须又执行session_start();将又会产生一个Session文件,与之对应产生相应的Session ID,用这个session id是取不出前面提到的第一个Session文件中的变量的,因为这个Session ID不是打开它的“钥匙”。
如果在session_start();之前加代码session_id($session id);将不产生新的Session文件,直接读取与这个id对应的Session文件。
PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。
必须注意的是:Session不一定必须依赖Cookie,这也是Session相比Cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID附着在URL中,这样再通过Session ID就能跨页使用Session变量了。
但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1“,或者编译时打开打开了“–enable-trans-sid”选项。
用过论坛的朋友都知道,在进入论坛的时候,往往会提示你检查Cookie是否打开,这是因为大多数论坛都是基于Cookie的,论坛用它来保存用户名、密码等用户信息,方便使用。
而且很多朋友都认为Cookie不安全(其实不是这样),往往禁用它。其实在PHP程序中,我们完全可以用Session来代替Cookie,它可以不依赖于客户端是否开启Cookie。
所以,我们可以抛开Cookie使用Session,即假定用户关闭Cookie的情况下使用Session,其实现途径有以下几种:
1、URL重写,就是把session id直接附加在URL路径的后面。
URL重写:http://www.test.me/test?jsessionid=xxxxxxx

运行以上代码,在客户端cookie正常的情况下,应该可以在得到结果”中华人民共和国”。
现在你手动关闭客户端的cookie,再运行,可能得不到结果了吧。如果得不到结果,再设置php.ini文件中的”session.use_trans_sid = 1“,或者编译时打开打开了”–enable-trans-sid选项”,又得到结果“中华人民共和国”。

2、表单隐藏字段。
添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
比如:

<form name="form" action="http://www.test.me/test"> 
    <input type="hidden" name="jsessionid" value=”"xxxxxxxxx″”> 
    <input type=”"text”"> 
</form>

3、 写入文件

-----------
        login1.php 
       //注册用户
       ob_start();
       session_start();
       $_SESSION[’user’]= $name;
       $psid=session_id();
       $fp=fopen("\phpsid.txt","w+");
       fwrite($fp,$psid);
       fclose($fp);
       //身份验证成功,进行相关操作
       echo "已登录<br>";
       echo "<a href="/login2.php">下一页</a>";
       ?>
---------------------------------------- 
       login2.php
       <?php
       $fp=fopen("\phpsid.txt","r");
       $sid=fread($fp,1024);
       fclose($fp);
       session_id($sid);
       session_start();
       if(isset($_SESSION[’user’]) && $_SESSION[’user’]="user" {
           echo "已登录!";
       } else { 
           echo "请<a href="/login.html">登录</a>";
           die();
       }
       ?>
---------------------------------- 
       关闭Cookie测试,用户名:user;密码:1234;这是通过文件保存SessionID的,
       文件是: phpsid.txt,请根据自己的系统决定文件名或路径。 
-----------------------------------
       上面的方法有一个共同点,就是在前一页取得SessionID,然后想办法传递到下一页,
       代码之前加代码SessionID(传过来的SessionID)。
Xilinx HydraMini试玩教程 HydraMini是Xilinx推出的基于Pynq-Z2开发板的自动驾驶开发小车,其有着简单易学、高灵活性、高扩展性、高性能等优良特性,是研究人员和学生进入自动驾驶领域的一个平台。本教程会通过最基础的讲解和步骤带领读者熟悉这个平台的基本开发流程。 阅读详情

相关推荐

教你搞懂RT-Thread的移植和配置ENV工具环境

RT-Thread的移植和配置ENV工具环境

Troubadour~的博客 8263

如果客户端不支持或禁用了Cookie,Session还能正常工作吗?

如果Cookie被禁用,服务器将无法将Session ID发送到客户端,也无法从客户端接收Session ID,从而导致无法建立和维护用户的Session状态。然而,这种方法可能会增加URL的长度,并且在某些情况下可能会导致安全问题(例如,Session ID泄露给第三方)。因此,在使用这些方法时,应该采取额外的安全措施,如使用HTTPS来加密传输的数据、定期更换Session ID等。然而,即使客户端禁用了Cookie,仍然有一些方法可以实现Session管理,尽管它们可能不太方便或具有一些限制。

长风破浪会有时的博客 929

【PLC】三菱PLC控件安装疑难解析:Error Number:-119的全面解决方案

本文针对三菱PLC控件安装过程中常见的Error Number:-119错误,提供了深度解析与实战解决方案。该错误通常源于Windows系统权限限制或文件冲突。文章从理解错误本质入手,逐步介绍了以管理员身份运行、手动注册DLL文件、采用新版环境搭配旧版控件的黄金组合以及系统环境修复等四大招法,帮助用户彻底解决这一安装难题,确保工控软件稳定运行。

jj890的博客 496

Cookie禁用了,Session还能用吗?

Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到S

yun飘 1038

脑机接口(BCI)从原理到开发实战 01|意念控制真的来了?一文看懂脑机接口的技术革命

类型定义典型应用主动式用户主动产生特定思维模式来控制设备运动想象(想象左手/右手移动)反应式用户被动接受外部刺激,系统检测大脑反应P300拼写器、SSVEP(稳态视觉诱发电位)被动式系统监测用户自发脑状态,不要求主动控制疲劳监测、情绪识别、注意力评估本系列后续文章将重点围绕主动式(运动想象)和反应式(P300/SSVEP)展开实战。脑机接口,这个曾经只存在于科幻中的概念,正在政策、资本、技术的三重驱动下,加速从实验室走向产业落地。2026年,注定是脑机接口发展史上浓墨重彩的一年。

小明的博客 1431

群晖Git Server权限配置全攻略:如何让普通用户(非admin)也能安全提交代码?

本文详细解析了群晖Git Server权限配置方案,特别针对普通用户(非admin)安全提交代码的需求。通过SSH服务配置、精细化用户权限管理及仓库创建自动化脚本,实现在DS218+等群晖NAS设备上的高效代码协作,同时确保系统安全。

weixin_42528780的博客 463

禁用Cookie后Session还能用吗?

到了医院先挂号. 挂号时候需要提供身份证, 同时得到了一张 “就诊卡”, 这个就诊卡就相当于患者的 “令牌”.后续去各个科室进行检查, 诊断, 开药等操作, 都不必再出示身份证了, 只要凭就诊卡即可识别出当前患者的身份.看完病了之后, 不想要就诊卡了, 就可以注销这个卡. 此时患者的身份和就诊卡的关联就销毁了. (类似于网站的注销操作)又来看病, 可以办一张新的就诊卡, 此时就得到了一个新的 “令牌”`

weixin_69160215的博客 1249

LabVIEW调用.so文件的方法

LabVIEW调用.so文件的方法

m0_37878912的博客 3024

浏览器禁用cookie后session还能用吗?cookie与session区别

答:浏览器禁用cookie后session不能正常使用。 cookie是一种客户端的会话技术,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。 session是服务器端的技术。服务器为每一个浏览器开辟一块内存空间,即session对象。由于session对象是每一个浏览器特有的,所以用户的记录可以存放在session对象中。 cookie存储在用户浏览器、session存储在web服务器。理论上cookie存储删除完全由用户控制,session存储删

Hi,appmy.cn! 4312

ArcGIS新手必看:用Landsat 8数据计算植被覆盖度的完整流程(附DEM裁剪技巧)

本文为ArcGIS新手提供了使用Landsat 8数据计算植被覆盖度的完整流程指南。详细讲解了从数据预处理、NDVI计算到基于像元二分模型反演植被覆盖度的核心步骤,并重点分享了利用DEM进行精确裁剪的实用技巧,帮助用户高效完成地表信息提取与分析。

weixin_29279047的博客 239

c#源码,将矩阵(二维数组)渲染成云图,强度图,热力图,均匀性图,伪彩图

优快云软件0积分下载链接:https://download.youkuaiyun.com/download/wanghuannihao1992/86656759。6、渲染效果良好,颜色均匀分布,不存在等高线,交叉点。3、纯粹的C#代码编写,不含第三方dll或者控件。4、支持ColorBar显示,强度值颜色坐标显示。2、渲染时间60ms左右,速度快,1、二维数据最小支持2*2,7、采样全新数据插值算法。先直接上C#软件效果图。5、整图保存为单个图片。

业余程序员小徐的博客 6881

面试—计网—Cookie和Session

Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。 Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过得用户信息,下次访问网站的时候页面可以自动帮你登录的一些基本信息给填了;②一般的网站都会有保持登录也就是说下次你再访问网站的时候就不需要重新登录了,这是因为用户登录的时候我们可以存放了一个 Token 在 Cookie 中,下次登录的时候只需要根据 Token 值来查找用户即可(为了安全考虑,重新登录一般要将 Token 重写);

weixin_44475386的博客 410

Apache DolphinScheduler 实现了对 OceanBase 的元数据库支持

Apache DolphinScheduler 是一款开源的分布式工作流任务调度系统,它提供了可视化的工作流设计和调度功能,支持大数据任务的自动化调度和监控。最近的更新中,Apache DolphinScheduler 引入了对 OceanBase 数据库的元数据库支持,这为用户在大数据环境中管理和调度任务提供了更多选择。用户可以通过 DolphinScheduler 提供的可视化界面进行工作流的设计和调度,也可以通过 DolphinScheduler 提供的 API 进行任务的编程调度。

VavzNvml的博客 495

浏览器禁用cookie后,怎么使用session

默认情况下禁用cookie那么session就不能用了; sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个sess

Huangwenting1990的博客 1697

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

禁用cookie后,如何使用session?

问题大家都知道,session的sessionid是通过cookie来保存的,那么如果我们的浏览器禁用了cookie,还可以使用session吗?这道面试题是不是经常被问?你能答得出来吗?禁用cookie后,session还是可以使用的。禁用后的情况禁用cookie后,服务器每次session_start的时候都会创建一个单独的session文件,后果就是无法让多个页面共享同一份session解决方

webbc的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

cookie 禁用了 session还能用吗?

Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得

Sunny_LG的博客 1786

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

禁用COOKIE后SESSION还能用吗

1.ASP 在ASP中,Session必须倚赖Cookie才可用,Session是存储在服务器端的,而Cookie是存储在客户端的,相对 而言,Session的安全性和可靠程度都比Cookie高。 2.PHP 在PHP中,通过相关的配置,可以让Session不依赖Cookie而存在。 php.ini中,把session.use_trans_sid设成1,那么连接...

天下熙熙,皆为利来;天下攘攘,皆为利往。 7398

cookie被禁用,如何保证session的正常使用

最近面试被问到cookie被禁用,如何保证session的正常使用。之前看过网上的博客,session的读取主要依赖于服务端传递给浏览器设置到cookie的jsesionid,cookie禁用后, 解决方式有两种(分别是表单隐藏域和url重写),今天我们来测试一下两种方式看下是否都可行 测试第一种表单隐藏域的方式: 上java代码 package com.lishu.demo.cookie.test; import org.springframework.stereotype.Controller; im

weixin_41247508的博客 1638

详解禁用Cookie与Session的问题及其解决的方法

Cookie与Session,一般被认为·是两个独立的的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么仅用了Cookie就不能得到Session呢?因为Session是用Session ID来确定的当前对话对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Sesison ID,也就得不到Session了。 关于如何禁用Cookie? 1、启动IE;   2、在“工具”菜单上,单击“Inter

char56789的博客 2701

Cookie禁用使用Session值方法

Cookie禁用使用Session值方法

乐杨俊浅谈LAMP 1238

Cookie禁用了,Session还能用吗?原因详解

Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。但为什么禁用Cookie就不能得到Session呢?因为Session是用Session ID来确定当前对话所对应的服务器Session,而Session ID是通过Cookie来传递的,禁用Cookie相当于失去了Session ID,也就得不到...

root_miss的博客 4359

浏览器禁用cookie后,如何使用session?

浏览器禁用cookie后,如何使用session? sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session...

小胖_@的博客 2146

php禁用cookie怎么使用session,php禁用cookie后session还可以使用吗

用php开发的小伙伴们,有时候会有这样的疑惑,就是我把cookie给禁用了那么session还可以使用吗。那么这里简单的说明下,个人说法,仅供参考。一、什么是cookie和session?两者有什么关系?Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。Cookie分为两种,一种可以叫做sessi...

weixin_34672875的博客 297

php禁用cookie 后 seesion 还能用吗?,php禁用cookie后session还可以使用吗

用php开发的小伙伴们,有时候会有这样的疑惑,就是我把cookie给禁用了那么session还可以使用吗。那么这里简单的说明下,个人说法,仅供参考。一、什么是cookie和session?两者有什么关系?Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。Cookie分为两种,一种可以叫做sessi...

weixin_39552874的博客 211

第119讲 session③-购物车 cookie 禁用后 如何使用session session防用户非法登陆

如上demo示例代码 视频上代码是这么撸的 注意 session 操作过程中 如果禁用cookie 那么 如上代码 购买一次生成一次session 也就是说 一个人购买的 几本书分别存在不同的session里边 这就很逆天了。。会取不出来的。想啊 每次生成一个session 如果不出意外应该是一本都看不到,因为浏览器根本就没有携带cookie没有携带cookie就意味着没有session_i...

骑猪也能看夕阳 1049

客户端禁用Cookie后如何使用Session

Cookie和Session Session即会话,是指一种持续性的,双向性的连接。Session和Cookie在本质上没什么区别,都是针对HTTP协议的局限性而提出的一种保持客户端和服务器之间的保持会话连接状态的机制。 HTTP协议本身并不能支持服务器端并保存客户端的状态信息,所以这个时候就用到了Session。 Session通过一个成为PHPSESSID的Cookie和服务器联系。Se...

谷子的博客 3328
上一篇: HTML5之画布Canvas
下一篇: flexbox全兼容模板
SunsCheung
博客等级 码龄11年 30粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值