Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建安全的php会话cookie_Php_Session_Cookies - Fatal编程技术网

创建安全的php会话cookie

创建安全的php会话cookie,php,session,cookies,Php,Session,Cookies,我正在尝试获取php会话cookie,其中php会话id存储为安全(https)且仅http $name = session_name(); setcookie($name, $_COOKIE[$name], 0, '/', 'domain.com, 1, 1); 我在会话开始前调用上述代码。问题是它创建了两个cookie。按照我想要的方式创建一个安全的cookie,然后它只创建一个没有ssl或http的常规cookie。两个cookie具有相同的值 有没有办法告诉php创建安全(ssl)和仅

我正在尝试获取php会话cookie,其中php会话id存储为安全(https)且仅http

$name = session_name();
setcookie($name, $_COOKIE[$name], 0, '/', 'domain.com, 1, 1);
我在会话开始前调用上述代码。问题是它创建了两个cookie。按照我想要的方式创建一个安全的cookie,然后它只创建一个没有ssl或http的常规cookie。两个cookie具有相同的值

有没有办法告诉php创建安全(ssl)和仅http会话cookie


还有,不要再提另一个问题了。既然我们在同一个话题上。。。用户是否可以修改其端的
$\u会话
变量?我知道他们可以在自己的终端上操作会话id,但我想知道
$\u session
是否可以安全地存储最终用户不能随意修改的用户id。

PHP在您调用
session\u start()
时为您创建cookie,这就是为什么

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

session_set_cookie_params($lifetime = 0, $path = '/', $domain, $secure = true, $httponly = true);
只需配置并删除您自己的
setcookie
调用,这是多余的

用户是否可以修改其端的
$\u会话
变量

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

这就是为什么如果用户想要更改其密码,您需要再次询问当前密码的原因。同样重要的事情也一样

同样,在成功登录或注销后:

对于注销:

session_regenerate_id(true);
session_regenerate_id(true);