-1

成功登录后,我想将用户名存储在 cookie 中,如果用户已在数据库中标记为管理员,我希望它以某种方式存储用户名和密码,我已阅读存储密码在 cookie 中是不安全的,但还能怎么做。这是一个 jQuery 移动网站。请参阅http://jsfiddle.net/jamesil/4VAJc/这是我目前所拥有的,目前存储用户名和密码并使用 js。也许这需要在 PHP 中完成?目前,如果我只想向管理员展示一些东西,我会在其中包装它

<?php 
$is_admin=(isset($_SESSION) && isset($_SESSION['is_admin_flag']) && $_SESSION['is_admin_flag']=='t');
?>
Some code
<?php } ?>

非常感谢任何反馈,我对 PHP 也很陌生。干杯

4

1 回答 1

0

是的,在客户端存储密码是一种非常不安全的做法,你应该在服务器端生成一个令牌。我的意思是使用任何密码算法的唯一标识符,即(,,,md5)。sha1sha256

例如,使用连接的用户名和密码信息以及一些随机信息创建一个令牌:

md5($_SESSION['username'] . $_SESSION['password'] . time() . microtime())

然后,将此令牌存储在数据库中,并将此令牌保存在用户 cookie 中。

此令牌是用户已通过身份验证的证明。因此,在此之后,在客户端,每个请求都应在http标头或任何其他位置发送令牌,而在后端,它将与在数据库中排序的令牌进行比较。

如果它们匹配,那么您确定请求来自正确的人。

另一件事,使令牌在最后一次请求后一段时间(可能是 30 分钟)后过期。

于 2012-09-23T05:10:46.817 回答