gpt4 book ai didi

php - 创建安全的 PHP session cookie

转载 作者:可可西里 更新时间:2023-11-01 00:16:28 27 4
gpt4 key购买 nike

我正在尝试让存储 php session ID 的 php session cookie 安全(https)并且仅限 http。

$name = session_name();
setcookie($name, $_COOKIE[$name], 0, '/', 'domain.com, 1, 1);

我在 session 开始前调用了上面的代码。问题是它创建了两个 cookie。一个我想要的安全方式,然后它创建一个没有 ssl 或 http-only 的常规 cookie。两个 cookie 具有相同的值。

有没有办法告诉 php 创建安全的 (ssl) 和仅限 http 的 session cookie?

此外,与其提出另一个问题。由于我们在同一主题上......用户可以修改 $_SESSION 变量吗?我知道他们可以最终操纵 session ID,但想知道 $_SESSION 是否可以安全地存储最终用户无法随意修改的用户 ID。

最佳答案

PHP 会在您调用 session_start() 时为您创建 cookie,这就是原因。

您可以使用 session_set_cookie_params 配置该 cookie函数或在您的 php.ini 中。

session_set_cookie_params($lifetime = 0, $path = '/', $domain, $secure = true, $httponly = true);

只需配置并删除您自己的 setcookie 调用,这是多余的。

Can a user modify $_SESSION variables on their end?

不可以,他们只能编辑 cookie 中的数据。这通常会导致失去 session (或者如果幸运的话,会得到其他人的 session )。

这就是为什么如果用户想要更改她/他的密码,您需要再次询问当前密码。对所有类似的重要事物都一样。

同样在成功登录或注销后,change the session id :

session_regenerate_id();

对于注销:

session_regenerate_id(true);

关于php - 创建安全的 PHP session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7693748/

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