【问题标题】:Is saving session under the same name safe in Laravel?在 Laravel 中以同名保存会话安全吗?
【发布时间】:2021-08-20 12:56:51
【问题描述】:

我需要将付款数据保存在数据库中。因此,其中一种方法是将数据存储到会话中,并在保存部分中完成其余的工作。

我是这样保存的:

$request->session()->put('paymentData', $request->all());

然后在另一个控制器中我调用同一个会话,做一些事情然后删除会话:

    $data = $request->session()->get('paymentData', 'default');
    // do some DB storing
    // delete session
    $request->session()->forget('paymentData');

我的问题是,如果两个用户同时付款。他们是否会因为将使用相同的名称paymentData 访问这些会话而混合这些会话?会话将存储在 storage\session 中的文件中。或者 Laravel 有一些方法可以区分这两个 Session,即使它们具有相同的名称/键?

【问题讨论】:

  • 没有。服务器上的会话数据由每个客户端(用户的浏览器)发送给/由每个客户端(用户的浏览器)作为 cookie 的唯一客户端 ID 标识
  • 我是这么认为的,但不确定。非常感谢!

标签: php laravel session


【解决方案1】:

每个浏览器会话都会创建会话。 Session 实例由特定的会话 ID 访问。浏览器将会话 ID 保存在 cookie 中,并在每次发出请求时发送它,因此服务器知道该请求使用哪个会话。

您放置在 会话中的内容可以复制没有问题 - 其他用户看不到该数据(除非他们通过浏览器攻击以某种方式获取会话 ID)。

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 2011-03-15
    • 2011-07-25
    • 2018-12-11
    • 2017-08-12
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多