use*_*449 3 php cookies session
我正在尝试将存储php会话ID的php会话cookie设置为安全(https)和仅http.
$name = session_name();
setcookie($name, $_COOKIE[$name], 0, '/', 'domain.com, 1, 1);
Run Code Online (Sandbox Code Playgroud)
我在会话开始之前调用上面的代码.问题是它创建了两个cookie.一个安全的,我想要的方式,然后它创建一个没有ssl或http-only的常规cookie.两个cookie都具有相同的值.
有没有办法告诉php创建安全(ssl)和http-only会话cookie?
而且,而不是提出另一个问题.由于我们处于同一主题...用户可以修改$_SESSION变量吗?我知道他们可以在他们的最后操纵会话ID,但是想知道是否$_SESSION安全存储最终用户不能随意修改的用户ID.
PHP会在您调用时为您创建cookie session_start(),这就是原因.
您可以使用该session_set_cookie_params功能或在您的内部配置该cookie php.ini.
session_set_cookie_params($lifetime = 0, $path = '/', $domain, $secure = true, $httponly = true);
Run Code Online (Sandbox Code Playgroud)
只需配置和删除您自己的setcookie呼叫,它就是多余的.
用户可以修改
$_SESSION变量吗?
不,他们只能编辑cookie中的数据.这通常会导致会话失败(或者如果幸运的话,可以获得其他人的会话).
这就是为什么如果用户想要更改她/他的密码,您需要再次询问当前密码.同样重要的一切.
在成功登录或注销后,更改会话ID:
session_regenerate_id();
Run Code Online (Sandbox Code Playgroud)
注销:
session_regenerate_id(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |