gpt4 book ai didi

php - SESSION中应该保存什么,不应该保存什么?

转载 作者:可可西里 更新时间:2023-10-31 22:07:24 24 4
gpt4 key购买 nike

我举一个例子为什么这个问题会出现在我的脑海中:假设我创建了扩展 PDO 类的类“PDOstart”。在“PDOstart”类上,PDO 所需的所有变量都在私有(private)部分(如主机、用户、密码等)上定义。所以使用 PDO 类非常容易,例如:

$con = new PDOstart();
$con->query("SELECT ... ");

因为在我的网页上我只使用一个数据库,我开始思考为什么不将 PDOstart 对象添加到 SESSION 中?比如:$_SESSION['db'] = $con; ?所以我不需要在每个页面上都做“new PODstart”。但我不确定那会是个好主意......

有什么我应该避免添加到 $_SESSION 的东西(出于安全或性能原因)吗?

最佳答案

用户 ID,以便每次加载页面时您都知道浏览的用途、元数据,例如页面更改的时间跨度(机器人检测)、本地信息、用户模板选择。该 session 真正需要的任何东西。

正如你所说的 $con 让我解释一下。

php中有几种变量类型,主要有:

  • 字符串
  • bool 值
  • 整数
  • 对象
  • 数组
  • 资源

现在,除了资源之外,您可以将所有这些存储到 session 中,因为文件句柄、与外部实体的连接等内容仅在 PHP 处理页面时打开,然后关闭。

其他的没问题,因为它们存储在内存中并且是静态的,除非您以编程方式更改它们,否则它们不会改变。

你应该在 session 中存储的主要实体是

  • GUID:以便您可以跟踪登录的用户。
  • Flash 数据:因此,如果您进行重定向,您将能够在其他页面上显示错误消息。
  • 浏览器数据,这样你就可以比较当前正在浏览的浏览器是否与上次相同,这样你就可以为了安全而终止 session 。

诸如用户行之类的数据库数据之类的东西不应存储在 session 中,您应该创建一个单独的缓存机制来为您执行此操作。

关于php - SESSION中应该保存什么,不应该保存什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4656812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com