php 如何使用cookie安全的保存登录状态sessionid

本来我是这样像的:1、login.php判断登录成功;2、user数据库中写如一个随机的sessionid;3、在用户浏览器写入一个cookie(userid和sessi... 本来我是这样像的:1、login.php判断登录成功;2、user数据库中写如一个随机的sessionid;3、在用户浏览器写入一个cookie(userid和sessionid);然后每次需要就验证一下提交上来的use... 本来我是这样像的: 1、login.php判断登录成功; 2、user数据库中写如一个随机的sessionid; 3、在用户浏览器写入一个cookie(userid和sessionid); 然后每次需要就验证一下提交上来的userid和sessionid,判断是否一致或过期, 但是如果这样,userid和sessionid被别人复制到其他客户端怎么办?刚学不久,希望各位大佬指点。 展开 展开
 我来答
连青赵惜蕊
2019-05-08 · TA获得超过3814个赞
知道大有可为答主
回答量:3159
采纳率:31%
帮助的人:191万
展开全部
同样还是将用户的认证信息保证在一个cookie中,具体如下:
1.cookie名:uid。推荐进行加密,比如MD5('站点名称'+userid)。
2.cookie值:登录名|有效时间Expires|hash值。hash值可以由"登录名+有效时间Expires+用户密码(加密后的)的前几位+salt",salt是保证在服务器端站点配置文件中的随机数。
这样子设计有以下几个优点:
1.即使数据库被盗了,盗用者还是无法登录到系统,因为组成cookie值的salt是保证在服务器站点配置文件中而非数据库。
2.如果账户被盗了,用户修改密码,可以使盗用者的cookie值无效。
3.如果服务器端的数据库被盗了,通过修改salt值可以使所有用户的cookie值无效,迫使用户重新登录系统。
4.有效时间Expires可以设置为当前时间+过去时间(比如2天),这样可以保证每次登录的cookie值都不一样,防止盗用者窥探到自己的cookie值后作为后门,长期登录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式