为了账号安全,请及时绑定邮箱和手机立即绑定

感觉效率和安全性都不是很好啊?有什么更好的方案吗?

感觉效率和安全性都不是很好啊?有什么更好的方案吗?

PHP
翻过高山走不出你 2023-04-25 20:16:56
本人比较菜,目前使用的方案是1.在客户端COOKIES中保存用户ID和一个加密码(规则只有我知道)2.如果程序检测到客户端保存的COOKIES ID。就去跟数据库验证加密码,如果一致则返回对应用户的登录信息,否则返回FALSE1.用户访问每个页面都要去跟数据库验证一遍2.加密码虽然规则很复杂,但是保存在客户端依然存在被破解的可能性
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

cookie中怎么能够保存密码呢?

你的做法已经可以了,不过有如下几点建议:
1. 客户端可以保存两种数据,一种是原数据(比如user_id),一种是对所有原数据的签名(你所说的加密码)
2. 原数据的保存可以看具体情况保存原字符串或者可逆加密算法加密后的字符串
3. 针对所有的原数据的签名的算法,最好是不可逆的
4. 服务器端只要获取到原数据,重新计算签名,比如和cookie中的签名是否一致即可。

最简单的cookie的样子:
A=uid=123&sign=xxxxxxxx

cookie生成方法:
sign = md5(secure_key + uid);
cookie = 'uid=' + uid + '&sign=' + sign
secure_key 是一个私有的串,谁也不能告诉哦。

cookie校验的方法:
获取到uid和sign之后
sign == md5(secure_key + uid)

当然如果觉得md5不可靠的话,可以选择更好的算法。


查看完整回答
反对 回复 2023-04-28
?
白衣非少年

TA贡献1155条经验 获得超0个赞

一般这样的不是用$_SESSION变量的么,COOKIES肯定不能保存密码额。我一般是这样用的,用$_SESSION保存登陆状态,用$_COOKIES保存一个用户ID什么的。

查看完整回答
反对 回复 2023-04-28
?
噜噜哒

TA贡献1784条经验 获得超7个赞

只在session中存放UID行不行?

每个页面判断是否存在UID,该UID只有在登录页面才会被添加进session,在登出的时候清空该session


查看完整回答
反对 回复 2023-04-28
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信