首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果禁用cookie,PHP会话如何工作?

在禁用Cookie的情况下,PHP会话仍然可以工作,但是会使用URL重写来追踪用户会话。这种方式将会话ID作为URL参数进行传递,从而实现不需要使用Cookie来进行会话追踪。

要实现这种方式,需要在PHP代码中使用session_id()session_start()函数。session_id()函数用于获取或设置当前会话ID,而session_start()函数用于开始会话。

在每个页面的顶部,使用session_start()函数来开始会话,并使用session_id()函数来获取当前会话ID。然后,可以使用header()函数将会话ID作为URL参数重写到页面的链接中。

例如,可以使用以下代码在页面顶部开始会话并重写URL:

代码语言:php
复制
session_start();

if (!isset($_GET['sid'])) {
    header('Location: ' . $_SERVER['PHP_SELF'] . '?sid=' . session_id());
    exit;
} else {
    session_id($_GET['sid']);
}

这段代码首先使用session_start()函数开始会话,然后检查是否存在名为sid的URL参数。如果不存在,则使用header()函数将用户重定向到当前页面,并在URL中添加会话ID作为参数。如果存在sid参数,则使用session_id()函数将会话ID设置为该参数的值。

这种方式可以实现在禁用Cookie的情况下使用PHP会话,但是需要注意的是,这种方式可能会导致URL看起来比较丑陋,并且可能会受到URL长度限制的影响。因此,在实际应用中需要权衡使用Cookie和URL重写两种方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Cookie 会话身份验证是如何工作的?

之后服务器会通过HTTP响应头来设置SessionId,即HTTP响应头中会包含 的响应头信息Set-Cookie如果认证失败,则提示用户进行相关操作。...使用(会话(配置,应用程序));应用程序。使用( bodyParser ());应用程序。使用(路由器。路由())。使用(路由器。allowedMethods());应用程序。...会话缺陷session保存在服务器端,如果短时间内有大量用户,会影响服务器的性能。可扩展性不好。当有多台服务器时,如何共享Session就会成为一个问题。...那么如何解决以上问题呢?解决方案之一是使用基于令牌的身份验证。在下一篇文章中,我将介绍JWT认证方式。有兴趣记得关注我哦。...从学习一开始就进入工作状态,省得浪费时间。

1K00

PHP cookie与session会话基本用法实例分析

本文实例讲述了PHP cookie与session会话基本用法。...分享给大家供大家参考,具体如下: cookie即是传统的会话控制,由于要存储的信息是保存在客户端的,所以安全系数较低,而session会话控制是将要存储的信息保存在服务器上的,所以相对于cookie安全系数较高...那么我们注册了一个会话之后我们怎么去删除这个会话呢? 以下是删除会话的代码 <?...:index.php");//如果不存在session则跳转到页面index.php } //如果你觉得我打的代码对你有帮助,求评论,请注意发言的礼仪,乱说删评论. ?...更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHPcookie用法总结》、《php缓存技术总结》、《PHP数组(Array)操作技巧大全》、《PHP网络编程技巧总结》及《php字符串(string

53041
  • 如何PHP 中使用和管理 Cookie

    Cookie 主要的应用场景如下: 会话状态管理(客户端记录 Session ID,用于管理用户登录状态、购物车或其它需要记录客户端状态的信息) 个性化设置(如用户自定义设置、主题、本地化语言等) 浏览器行为跟踪...到客户端的函数 —— setcookie: 通过 setcookie 设置的 Cookie 会和已有的 Cookie 一起设置到 Set-Cookie 响应头和 HTTP 响应一起发送给客户端,如果请求头中已经包含同名...表示该 Cookie 只能通过 HTTP 协议访问,如果在命令行调用无效,默认是 false。...下面我们调用这个函数来发送 Cookie 到客户端,在 php_learning/http 目录下新建 cookie.php 来保存本篇教程的代码: <?...我们改写上述 cookie.php 的实现,新增读取 Cookie 的逻辑: <?

    3.6K20

    【说站】php如何配置Cookie加密

    php如何配置Cookie加密 说明 1、Cookie在客户端浏览器的传输的HTTP头也是明文的。...跨应用程序使用Cookie:不正确配置的应用程序可能具有相同的会话存储,如所有会话默认存储在/tmp目录下,一个应用程序的cookie可能永远不会被重新用于另一应用,只要加密密钥不同。...测试   ##默认PHP的Session保存在tmp路径下 ll  -rt /tmp | grep sess ##扩展未开启时查看某条sesson的数据 cat  sess_ururh83qvkkhv0n51lg17r4aj6...//记录是明文的 ##扩展开启后查看某条sesson 的数据 cat  sess_ukkiiiheedupem8k4hheo0b0v4 //记录是密文的 可见加密对安全的重要性 以上就是php中配置Cookie...更多php学习指路:php教程 推荐操作系统:windows7系统、PHP5.6、DELL G3电脑

    49220

    php中Session使用方法详解

    当客户禁用Cookie时,Session ID就不能在Cookie中保存,也就不能在页面之间传递,此时Session失效。...不过PHP5在Linux平台可以自动检查Cookie状态,如果客户端禁用它,则系统自动把Session ID附加到URL上传送。而使用Windows系统作为Web服务器则无此功能。   ...在PHP中提出了跟踪Session的另一种机制,如果客户浏览器不支持Cookie,则PHP可以重写客户请求的URL,把Session ID添加到URL信息中。...> 在使用Linux系统做服务器时,则在编辑PHP如果使用了–enable-trans-sid配置选项,和运行时选项session.use_trans_sid都被激活,在客户端禁用Cookie时,相对...该常量在会话启动时被定义,如果客户端没有发送适当的会话Cookie,则SID的格式为session_name=session_id,否则就为一个空字符串。因此可以无条件地将其嵌入到URL中去。

    1.1K30

    如果您有全职工作如何为Kubernetes做贡献

    如何处理一个问题(issue) 阅读任何 链接的问题 或 request(PR),以帮助您了解问题的背景和问题。如果问题描述不清楚,请确保在投入时间去研究问题之前与问题的创建者联系以获得更清晰的理解。...由于我必须在全职工作之外从事 K8s 的工作,所以我也想知道这将如何影响我的工作与生活平衡。在查看了问题和其他PR之后,我发现我需要至少在两周内提供PR或状态更新。...如何加入Kubernetes社区 对于日常交流沟通,Kubernetes Slack非常适合直接与其他贡献者进行交流并提出问题。...全职工作如何管理时间 设置每周花费多少个小时用于K8s贡献的时间是很有帮助,否则你很容易陷入日常的开发事务中。当您的日常工作或生活忙碌时,请不要为K8贡献力量,这也很重要。...编程过去只是工作,但现在也成了业余爱好。如果您的日常工作不太苛刻,我强烈建议您尝试一下。 资源资源 Kubernetes Slack(邀请自己!)

    1.5K80

    PHP如何保持SESSION以及由此引发的一些思考

    PHP如何设置SESSION? 搭建好PHP的开发环境后,通过phpinfo()可以查看到与SESSION有关的部分包括: SESSION模块,在PHP V5.2.9版本中,一共有25个变量。...如果要在PHP程序中使用SESSION,一定要先引用session_start(),这个函数一执行,就会在SESSION的存储目录(如果使用了file handler)生成一个SESSION文件,里面内容是空的...但是同时,如果我们希望用户的session马上过期的话,我们就可以通过设置cookie的办法来实现。...拾遗: 对于客户端不支持JavaScript的情况可以采用的方法: 1、写一个浮层,显示在最顶层,如果用户未禁用JS,则让浮层消失; 2、将所有的INPUT都设置为disable,然后再用JS设置为enabled...; 以上这两种方式都是在JS被禁用的时候,所有功能都不能用,如何在JS被禁用的情况下使我们的应用仍然正常工作,这个貌似就比较困难。

    1.1K30

    带你走进PHP session反序列化漏洞

    0x03 PHP Session 的工作流程 会话工作流程很简单,当开始一个会话时,PHP 会尝试从请求中查找会话 ID (通常通过会话 cookie),如果发现请求的Cookies、Get、Post...有时候浏览器用户设置会禁止 cookie,当在客户端cookie禁用的情况下,php也可以自动将session id添加到url参数中以及form的hidden 字段中,但这需要将php.ini中的...默认为 0 session.cookie_path 指定要设置会话 cookie 的路径,默认为 / session.cookie_domain 指定要设置会话 cookie 的域名,默认为无,表示根据...如果客户端发送了 Referer 信息但是在其中并未找到该子串,则嵌入的会话 ID 会被标记为无效。...默认禁用 session.sid_length 配置会话ID字符串的长度。 会话ID的长度可以在22到256之间。默认值为32。

    1.7K20

    PHP中Session ID的实现原理分析和实例解析

    session 的工作机制: 为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。...另外,黑客如果要猜出某一用户的PHPSESSIONID,则他也必须知道“客户端IP、当前时间(秒、微妙)、随机数”等数据方可模拟。...php.ini配置如下: ; http://php.net/session.hash-function session.hash_function=0 PHP Session工作原理 以下以cookie...如果客户端禁用cookie,由于无法使用cookie传递PHPSESSID,那么客户端每次请求,服务端都会重新建立一个session文件,而无法通过通过PHPSESSID来重用session文件,所以...PHPcli模式通过session_id()使用session 可以通过它来获取当前会话的PHPSESSID,也可以通过它来设置当前的会话PHPSESSID。

    4.8K10

    PHP中Session ID的实现原理实例分析

    本文实例讲述了PHP中Session ID的实现原理。分享给大家供大家参考,具体如下: Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。...另外,黑客如果要猜出某一用户的PHPSESSIONID,则他也必须知道“客户端IP、当前时间(秒、微妙)、随机数”等数据方可模拟。...session.hash_function=0 【PHP session工作原理】 以下以cookie传输PHPSESSID描述。...如果客户端禁用cookie,由于无法使用cookie传递PHPSESSID,那么客户端每次请求,服务端都会重新建立一个session文件,而无法通过通过PHPSESSID来重用session文件,所以...【PHPcli模式通过session_id()使用session】 可以通过它来获取当前会话的PHPSESSID,也可以通过它来设置当前的会话PHPSESSID。

    1.7K20

    php案例 解决cookie失效后使用session的问题

    cookie存储在哪里? session安全还是cookie安全? Cookie禁用了,Session还能用吗? cookie为什么关闭浏览器后就失效了? 怎么手动禁止谷歌浏览器的cookie?...数据都在数据库中,所以就算sessionid被获取利用,但是session中的数据并不会被恶意程序获取,这一点相对cookie来说就安全了一些。 Cookie禁用了,Session还能用吗?...但为什么禁用Cookie就不能得到Session呢?...是不是Cookie禁用了,Session就一定不能用了呢?答案是否定的,即使cookie禁用,session还可以借助于url来和客户端交互。 cookie为什么关闭浏览器后就失效了?...$pass) {//如果用户名或者密码一个为空进行if里面 echo "用户名或密码为空,请重新登录"; exit(); } if (!

    1.2K30

    详解 Cookie 纪要

    如果客户端没有禁用CookieCookie在启动Session回话的时候扮演的是存储sessionID 和 Session 生存期的角色。Session过期后,PHP会对其进行回收。...假设客户端禁用Cookie,可以通过URL或者隐藏表单传递sessionID;php.ini中把session.use_trans_sid 设成1,那么连接后就会自己加Session的ID。...id,而 session id 是存在 cookie 中的,也就是说,如果 浏览器禁用cookie ,同时 session 也会失效(当然也可以在 url 中传递) 4,session 可以放在...有人问,如果客户端的浏览器禁用Cookie 怎么办?...如果把别人机器上的Cookie文件复制到我的电脑上(假设使用相同的浏览器),是不是能够登录别人的帐号呢?如何防范? A:是的。这属于Cookie劫持的一种做法。

    72730

    详解 Cookie 纪要

    如果客户端没有禁用CookieCookie在启动Session回话的时候扮演的是存储sessionID 和 Session 生存期的角色。Session过期后,PHP会对其进行回收。   ...假设客户端禁用Cookie,可以通过URL或者隐藏表单传递sessionID;php.ini中把session.use_trans_sid 设成1,那么连接后就会自己加Session的ID。   ...id,而 session id 是存在 cookie 中的,也就是说,如果 浏览器禁用cookie ,同时 session 也会失效(当然也可以在 url 中传递) 4,session 可以放在...有人问,如果客户端的浏览器禁用Cookie 怎么办?...如果把别人机器上的Cookie文件复制到我的电脑上(假设使用相同的浏览器),是不是能够登录别人的帐号呢?如何防范?   A:是的。这属于Cookie劫持的一种做法。

    1.1K90

    你必须了解的session的本质

    这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制。 我们先简单的了解一些http的知识,从而理解该协议的无状态特性。然后,学习一些关于cookie的基本操作。...最后,我会一步步阐述如何使用一些简单,高效的方法来提高你的php应用程序的安全性以及稳定行。...并且你可以学习到cookie是怎样工作的,php 的session做了那些事情,以及怎样才能劫持session。 http 概览 如何才能保持web应用程序的状态以及选择最合适的解决方案呢?...如果cookie的生存时间是整个会话期间的话,那么浏览器会将cookie保存在内存中,浏览器关闭时就会自动清除这个cookie。...session的管理 直到现在,我只讨论了如何维护应用程序的状态,只是简单地涉及到了如果保持请求之间的关系。接下来,我阐述下在实际中用到比较多的技术 – Session的管理。

    91670

    6个常见的 PHP 安全性攻击

    烦人的弹窗   刷新或重定向   损坏网页或表单   窃取cookie   AJAX(XMLHttpRequest)   防止XSS攻击   为了防止XSS攻击,使用PHP的htmlentities...3、会话固定   会话安全,假设一个PHPSESSID很难猜测。然而,PHP可以接受一个会话ID通过一个Cookie或者URL。...如果会话ID存储在Cookie中,攻击者可以通过XSS和JavaScript窃取。如果会话ID包含在URL上,也可以通过嗅探或者从代理服务器那获得。   ...防止会话捕获和劫持   更新ID   如果使用会话,请确保用户使用SSL   5、跨站点请求伪造(CSRF)   CSRF攻击,是指一个页面发出的请求,看起来就像是网站的信任用户,但不是故意的...防止代码注入   过滤用户输入   在php.ini中设置禁用allow_url_fopen和allow_url_include。

    1.7K50
    领券