Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 “$\u会话”中密钥的命名是否会影响安全性?_Php_Security_Session - Fatal编程技术网

Php “$\u会话”中密钥的命名是否会影响安全性?

Php “$\u会话”中密钥的命名是否会影响安全性?,php,security,session,Php,Security,Session,我想知道钥匙的名字对安全性是否重要。唯一名称是否比通用名称更安全 如果我将用户的电子邮件存储在 $\u SESSION['email']如果像$\u SESSION['em\u 10lettersID']那样每个用户都是唯一的,那会更好吗。不过,一般来说,将电子邮件存储在会话中可能并不安全。 您谈论的是会话变量的名称,而不是会话 不,没关系。任何人都可以打开浏览器,查看调试器中的资源,并查看Cookie中存储的内容。如果存储的值为“joe@example.com“ 一般来说,在会话中存储电子邮

我想知道钥匙的名字对安全性是否重要。唯一名称是否比通用名称更安全

如果我将用户的电子邮件存储在
$\u SESSION['email']
如果像
$\u SESSION['em\u 10lettersID']
那样每个用户都是唯一的,那会更好吗。不过,一般来说,将电子邮件存储在会话中可能并不安全。

  • 您谈论的是会话变量的名称,而不是会话
  • 不,没关系。任何人都可以打开浏览器,查看调试器中的资源,并查看Cookie中存储的内容。如果存储的值为“joe@example.com“
一般来说,在会话中存储电子邮件地址或任何其他敏感信息不是一个好主意。最好存储一个用户令牌(类似MD5散列或AES加密的秘密字符串),该令牌可以在数据库中查找(或在web根目录之外的平面文件中,公共www用户都无法访问)。然后,您的数据库或数据存储可以使用该键检索需要输入代码的值

希望有帮助。

  • 您谈论的是会话变量的名称,而不是会话
  • 不,没关系。任何人都可以打开浏览器,查看调试器中的资源,并查看Cookie中存储的内容。如果存储的值为“joe@example.com“
一般来说,在会话中存储电子邮件地址或任何其他敏感信息不是一个好主意。最好存储一个用户令牌(类似MD5散列或AES加密的秘密字符串),该令牌可以在数据库中查找(或在web根目录之外的平面文件中,公共www用户都无法访问)。然后,您的数据库或数据存储可以使用该键检索需要输入代码的值


希望能有所帮助。

让我们澄清任何误解

会话是服务器端存储。仅此而已。通过在包含唯一令牌的设备上存储cookie,此存储与设备(“用户”(如果愿意)相关联。每个请求,设备都会将此cookie(以及令牌)发送到服务器。然后,服务器识别该令牌并检查该令牌是否存在现有会话。它从存储器加载会话(默认情况下,该存储器是一个文件),其内容存储在
$\u session
变量中

默认情况下,cookie的名称是PHPSESSID,令牌是随机生成的哈希。您可以在Chrome开发者控制台的资源选项卡下检查此cookie

现在,由于会话及其包含的任何内容都不会向用户公开(请记住:它是在服务器上持久化的),因此存储在其中的内容并不重要;客户不可能知道

此规则的例外情况是当客户端获得对服务器的访问权限时。然而,在这种情况下,您需要担心更大的问题

还有一点需要注意的是,
$\u会话
对于每个客户端/用户都是唯一的,它们不能影响彼此的
$\u会话

请注意,这种解释有些简化


现在,您永远不应该在COOKIE中存储敏感信息(
$\u COOKIE
)。它们保存在客户端/用户上

让我们澄清任何误解

会话是服务器端存储。仅此而已。通过在包含唯一令牌的设备上存储cookie,此存储与设备(“用户”(如果愿意)相关联。每个请求,设备都会将此cookie(以及令牌)发送到服务器。然后,服务器识别该令牌并检查该令牌是否存在现有会话。它从存储器加载会话(默认情况下,该存储器是一个文件),其内容存储在
$\u session
变量中

默认情况下,cookie的名称是PHPSESSID,令牌是随机生成的哈希。您可以在Chrome开发者控制台的资源选项卡下检查此cookie

现在,由于会话及其包含的任何内容都不会向用户公开(请记住:它是在服务器上持久化的),因此存储在其中的内容并不重要;客户不可能知道

此规则的例外情况是当客户端获得对服务器的访问权限时。然而,在这种情况下,您需要担心更大的问题

还有一点需要注意的是,
$\u会话
对于每个客户端/用户都是唯一的,它们不能影响彼此的
$\u会话

请注意,这种解释有些简化


现在,您永远不应该在COOKIE中存储敏感信息(
$\u COOKIE
)。它们保存在客户端/用户上

“一般来说,在会话中存储电子邮件地址或任何其他敏感信息不是一个好主意。”你是说cookie?是的,cookies也是。但是OP并没有询问cookie。“一般来说,在会话中存储电子邮件地址或任何其他敏感信息都不是一个好主意。”你是说cookie?是的,cookie也是。但是OP不是问饼干的事。