开发者社区> 问答> 正文

一般网页登陆之后,账号和用户信息存储在哪?

一般网页登陆之后,账号和用户信息存储在哪?
是存储本地在cookie、sessionStorage、localStorage里面。
还是通过url传递参数查询?
求大神指导,有哪种方式更安全方便。

window.sessionStorage.name = 'rainman';           // 赋值
window.sessionStorage.setItem('name','cnblogs');  // 赋值
window.sessionStorage.getItem('name');            // 取值
window.sessionStorage.removeItem('name');         // 移除值
window.sessionStorage.clear();                    // 删除所有sessionStorage


localStorage.setItem("me", JSON.stringify(person));



//获取cookie
        function getCookie(name) {
            var strCookie = document.cookie;
            var arrCookie = strCookie.split("; ");
            for (var i = 0; i < arrCookie.length; i++) {
                var arr = arrCookie[i].split("=");
                if (arr[0] == name) return arr[1];
            }
            return "";
        }


url&id=??

展开
收起
杨冬芳 2016-06-16 17:26:45 10230 0
1 条回答
写回答
取消 提交回答
  • IT从业

    信息通常都是存储在服务器端的,客户端的cookie存一个key,服务器端通过这个key查找对应的缓存找到之前的登录信息。

    轻量的方案还有一个做法是将登录信息存储到cookie中,不过这些信息不应该包含敏感数据,比如用户密码,因为cookie是明文的。
    同时为了防止有人伪造,一般会再对这些信息做一次摘要加密算法,然后也放到cookie中,服务器通过判断摘要加密串来识别信息是否是服务器写入的。
    当然你的加密算法肯定需要保密,一般常用的办法是 将登录信息序列化,然后加上一个字符串(需要严格保密,别人如果知道这个就可以伪造cookie了),再做MD5或SHA。

    举个例子,用户登录成功后,你可以将用户ID,昵称,头像,邮箱,电话,性别等信息放在cookie中,为了防止别人伪造cookie信息,你将上诉的信息序列化成字符串,然后加上一个secreKey,例如:'&%1^88123*!@14',然后做MD5,也放在cookie中,这样每次服务器拿到cookie后,用同样的算法再计算一次,与cookie中之前的前次计算值匹配下即可知道是否是真的服务器设置的了。

    如果为了更加安全,secreKey可以根据不同的用户数据产生,或者设置过期时间,就不复述了。

    2019-07-17 19:41:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
安全机制与User账户身份验证实战 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载