PHP使用Cookies和Salted Hashes的登录系统
- 论坛
- PHP使用Cookies和Salted Hashes的登录系统
9 浏览
PHP使用Cookies和Salted Hashes的登录系统
我正在开发一个基于PHP的登录系统。
每个用户都有一个ID(一个数字)和一个密码,密码以盐哈希的形式存储。
我已经能够确定登录是否成功,但现在我需要将该信息存储在某个地方(以便用户不会永久注销)。
过去,我曾尝试使用$_SESSION变量。然而,当用户离开浏览器时,这些变量似乎会被删除,这是不希望发生的。
另外,我不能“假设”用户不会试图欺骗系统,所以必须保证安全。
所以,这里是我的问题:
- 我应该使用$_SESSION还是$_COOKIE?每种方法的主要优势是什么?
- 如何实现“记住我”复选框?
- 哪些信息应该存储在会话/cookie变量中?
请注意,在这个特定的问题中没有考虑数据库安全问题。
关于第3个问题,我的意思是:
- 我应该在cookie/session中存储用户的ID和哈希密码,还是
- 我应该在cookie/session中存储用户的ID和非哈希密码,还是
- 我应该存储一个“SessionID”和密码(哈希或非哈希?)还是
- 我应该存储一个“SessionID”,“ID”和密码(再次哈希或非哈希)?
我希望保持我的网站尽可能安全,高效和用户友好。
如果采用基于SessionID的方法,我也希望能得到关于如何将其存储在数据库中的解释。
提前谢谢你们的帮助。
编辑:Eran和Brian的答案结合起来似乎是我需要的。不幸的是,我只能选择其中一个作为接受的答案。我将尝试实施,看看哪一个更有用。