- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
session_id($randomString)
和 session_regenerate_id()
之间有什么明显区别?两者似乎都改变了 session ID:
session_regenerate_id() will replace the current session id with a new one, and keep the current session information.
session_id() is used to get or set the session id for the current session.
如果我做对了,session_regenerate_id()
会创建一个新的 session 文件并复制数据,并带有删除旧文件的选项;而 session_id($randomString)
只是更改现有文件中的 session ID。
如果是这样,复制文件有什么好处?从防止 session 固定的角度来看如何更好?
This answer和我发现的任何其他内容都没有回答我的问题。
最佳答案
好的,所以我做了一些测试来找出三个不同选项的区别(session_id($id)
after session_start()
, session_regenerate_id()
和 session_regenerate_id(true)
)。这是实际发生的结果:
在session_start之后调用session id函数会改变session id。在页面加载结束时,当前 session 内容将写入一个新的 session 文件。这也将保留旧的 session 文件,并且不会因任何更改而更新。但是,session_id
不会发送新的 session cookie。这是由 session_start
完成的,即使在 session_start
之前调用 session_id
也是如此。在下一个页面加载时,旧 session ID 被传递并加载与上次页面加载开始时相同的数据(新 session 更改将保存到新 ID)。
session_regenerate_id()
将创建和更改 session ID,将 session 转移到新文件并发送 cookie。将 true
作为参数传递也将删除旧 session 文件,省略参数将保留它。
就 session 固定而言,session_id($id)
和 session_regenerate_id()
实际上会更糟,因为您在创建新 session 的同时留下旧 session 文件被劫持。可能有助于固定的唯一选择是调用 session_regenerate_id(true)
传递参数。
关于php - session_regenerate_id() 与 session_id(randomString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367982/
是否有任何特别的理由来使用其中一个?我个人倾向于使用后者,因为它似乎更适合我。 最佳答案 它们做同样的事情, 关于php - 和 的区别,我们在Stack Overflow上找到一个类似的问题:
我一直在尝试在我的网站上查找 session ID,以便可以使用它来查询我的 MySQL 数据库,但我不断收到错误“ undefined variable :_SESSION in...” 这是我的代
我在 session 方面遇到了一些困难。 在我的本地 MAMP 测试服务器上,如果我这样做: session 开始();echo session_id( ); 我得到一个漂亮的 session ID
我无法理解下面的代码,我不知道我们什么时候在 session_start() 之前使用 session_id() 。 我要你解释一下!不只是复制 php.net 的描述! 另一方面,session_
我在使用 session_id() 时遇到问题,它每次在浏览器刷新/重新启动时都会返回一个新值。 阅读这篇文章 here但这并没有解决问题。我做了那里提到的所有事情 - 浏览器接受 cookie,权限
我使用 session_id 作为数据库中的 ID 列。还有一个名为“Sections”的列,其中添加了整个 xml。 xml 包含部分名称和用户在其中花费的时间。我想更新相同 session_ids
我应该在关系数据库课上多加注意,所以我需要一些帮助。 我有一个结构如下的表(还有更多,但我只发布相关信息): +------------------+-------------+------+----
我正在使用 JavaScript 发送 session_id。 session_id 在页面源中可见,例如: function startUpload(id){ var queryString
我正在开发一个在线机票预订系统,在成功预订(付款后)后,我想清除 session ID。但问题是我无法清除它,尽管我使用了 session_destroy() 来销毁 session 。 注意:我已经
我在云中“托管”的两个 Ubuntu Server VM 上使用 PHP 5.4.9,Windows Azure 和 Magento Enterprise 位于许多不同的域/子域下,这意味着有大量页面
我的生产服务器上出现了一个奇怪的情况。但是,在我本地的开发环境中这不是问题。这是一个测试脚本,我可以用它来重现问题: 如果我在浏览器中加载此页面并刷新页面 (CTRL+R),我每次都会
我尝试实现购物车。我将 session_id 存储在数据库中,以及购物车上的相关产品。登录后,我希望拥有相同的 session ,并且能够通过访问 session_id 将这些产品与用户连接起来。但是
我正在尝试在 python 3 上生成安全的 session_id。 首先,我只是生成时间戳的md5哈希值(包括微秒),然后通过cookie写入该值。但这种方法可能会被劫持。例如,从浏览器A的cook
无法在 PHP SESSIONS 中获取所有 session_id 的列表吗? 注意:我需要在服务器中维护一些文件。一个文件等于一个 session 。如果 SESSION 过期,我需要确定旧文件的行
我正在构建一个网络应用程序,用户可以上传某些文件并通过网络应用程序界面处理这些文件。我需要在用户 session 期间存储这些文件。我正在使用 session_id 作为文件夹名称为每个用户创建一个文
我的应用程序中有一些基本的 session 处理。在每个页面中,我检查用户是否已登录。如果已登录,则他们已被 $_SESSION['user_id'] 识别,并且他们的登录/注销记录在 MySQL 表
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: (PHP) How to destroy the session cookie correctly? 我正在
session_id($randomString) 和 session_regenerate_id() 之间有什么明显区别?两者似乎都改变了 session ID: session_regenerat
在标准 PHP 中,我可以通过以下方式设置 session ID: $my_session_id = $_GET['session_id']; //gets the session ID succes
我有一个 session_id,用于识别购物篮类型应用程序中的用户。 session_id 作为 session id 存储在数据库中。 当我更新购物车时,session_id、product_id
我是一名优秀的程序员,十分优秀!