我正在开发基于PHP的登录系统。 每个用户都有一个ID(数字)和一个密码,存储为盐值哈希。
我能够判断登录是否成功,但现在需要将该信息存储在某个地方(以便用户不会永久注销)。
过去,我曾尝试使用$_SESSION变量。但是,当用户离开浏览器时,这些变量似乎会被删除,这是不希望的。 此外,我不能“假设”用户不会尝试欺骗系统,因此必须安全。
所以,这里是我的问题:
- 我应该使用$_SESSION还是$_COOKIE?每种方法的主要优点是什么?
- 如何实现“记住我”的复选框?
- 应将哪些信息存储在会话/cookie变量中?
请注意,此特定问题未考虑任何数据库安全问题。
关于第3个问题,我的意思是:
- 我应该在cookie / session中存储用户的ID和哈希密码,还是
- 我应该在cookie / session中存储用户的ID和非哈希密码,还是
- 我应该存储一个“SessionID”和密码(哈希或非哈希?)或
- 我应该存储“SessionID”,“ID”和密码(再次,哈希或非哈希)?
我想尽可能保持我的网站安全,高效且用户友好。 如果采用基于SessionID的方法,我也希望获得有关如何将其存储在数据库中的说明。
谢谢您提前
注:此答案只是翻译,不代表具体技术建议。