在PHP会话中存储用户密码是否常见?

在PHP会话中存储用户密码是否常见?,php,security,session,Php,Security,Session,新的php会话在这里。我存储的用户数据很小,不是很敏感,但我当然还是想要一个安全的网站。我已经用salt将他们的密码散列存储在我的数据库中 我是否需要在我的站点的每个页面上使用用户的密码验证用户,或者这是一种过激行为?换句话说,如果他们已成功“登录”,并且我已将他们的用户名存储在php会话中,那么这是否足以让他们四处漫游,让网站知道他们是谁 我这样问是因为似乎在会话中存储用户密码可能不是最好的主意。这是真的吗?我不会在会话中存储密码,您只需存储他们已登录会话即可 $_SESSION['uerlo

新的php会话在这里。我存储的用户数据很小,不是很敏感,但我当然还是想要一个安全的网站。我已经用salt将他们的密码散列存储在我的数据库中

我是否需要在我的站点的每个页面上使用用户的密码验证用户,或者这是一种过激行为?换句话说,如果他们已成功“登录”,并且我已将他们的用户名存储在php会话中,那么这是否足以让他们四处漫游,让网站知道他们是谁


我这样问是因为似乎在会话中存储用户密码可能不是最好的主意。这是真的吗?

我不会在会话中存储密码,您只需存储他们已登录会话即可

$_SESSION['uerlogged'] = $mytoken;
然后,每个页面加载检查以查看是否设置了
$\u会话['userlogged']


您可能还想考虑在会话中添加一些预防措施,查看---/P>< P>不要存储密码。相反,请在一个单独的表中存储一个身份验证令牌,您可以检查该令牌是否存在。

实际上不需要在会话中存储密码。您应该有状态标志来显示它们当前是否经过身份验证,以及定义用户身份和相关信息的某种对象。

在会话中存储密码与在用户登录后在会话中存储用户名没有任何区别,因此不要存储密码


它只会像存储的用户名一样工作,这就足够了(即使是一个标志也可以)。

用户不能修改会话,您只能将用户名存储在那里,并相信它总是正确的。

您不需要对每个请求进行身份验证,但您确实需要对每个请求进行授权

身份验证是根据数据库验证用户用户名/密码的地方。一旦他们成功通过身份验证,您只需在会话中存储他们的用户ID(或用户名)。

在每次后续请求中,请检查以确保当前会话已被授权查看请求的内容。在您的情况下,您可能只需要确保会话中存在有效的用户ID。。。你不必对数据库做任何事情

您可以使用类似于以下的功能对每个请求进行授权:

function isAuthorized() {
    return isset($_SESSION['user_id']) && ($_SESSION['user_id'] != 0);
}
通过在数据库中管理自己的会话数据,您可以使其更加安全,这样您就不必对cookie抱有太多信心,因为cookie可能被(恶意)用户交易/窃取等。但对于大多数网络应用来说,这通常是矫枉过正的