将分类信息存储在会话变量中是否安全


Is it safe to store classified information in a session variable?

我只是想知道保存密码等机密信息是否安全。如果没有,潜在的安全问题是什么?我目前正在开发一个有登录名的网站。用户登录后,我计划将有关用户的所有信息保存到会话变量中,这样我就不必每次想访问用户的所需信息时都在数据库中查询它,这就是我问这个问题的原因。

"安全"是一个相对词,但存储在_SESSION中的信息与存储在数据库中的信息大致相同。。只有合法入侵你的服务器的人才能访问它。

也就是说,会议本身可能并不安全。恶意用户可能会修复或劫持会话。这并没有直接向他们提供_SESSION内容的信息,但它仍然允许他们充当另一个用户。你应该采取必要的预防措施。。老实说,这不是不使用会话的理由。

一个预防措施是不要将用户密码存储在_SESSION中。你为什么要这么做?

只要您不var_dump() _SESSION或只想显示会话值,那么_SESSION就和DB一样安全。尽管如此,出于各种原因(不仅仅是安全原因),您应该将存储在_SESSION中的信息限制为您实际需要的信息。

$_SESSION中包含的数据通常存储在文件系统中。。最常见的位置是/tmp/文件夹(当您将其保存在缓存中时,有一些解决方案,noSQL或SQL)。

因此,默认情况下,那里的数据和你的服务器一样安全。如果你的服务器被泄露,那么会话数据中的机密信息是你最小的问题。

在会话中存储密码毫无意义
所以,安全还是不安全——这根本不重要(但显然不安全)。只是不要储存。

所以我不必在数据库中查询它

为什么?查询数据库有什么问题?

每次我想访问所需的信息

好吧,但是密码?它可能需要什么?

不安全

会话劫持,有时也称为cookie劫持,是指利用>有效的计算机会话(有时也称为会话密钥),未经授权访问>计算机系统中的信息或服务维基百科

这是窃取客户会话ID的行为,通过该ID,他们可以访问您的web应用程序,就好像他们是该客户一样。

这可能吗?他们如何获得用户浏览器中的会话ID

是的,这是可能的。两个cookie属性(或标志)HttpOnly和Secure就是造成这种情况的原因。