search

Home  >  Q&A  >  body text

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

一般网页登陆之后,账号和用户信息存储在哪?
是存储本地在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=??
PHPzPHPz2822 days ago919

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:21:40

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

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

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

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:21:40

    可以是COOKIE。也可以是SESSION。
    URL传递?通过很少这么做吧。用户禁用COOKIE才可能出现。
    其他的HTML5的存储我们目前暂时不考虑
    如果要安全要求高:强制使用SSL。其他方式基本都不太安全吧。
    无论存Cookie。session.都有风险。

    reply
    0
  • Cancelreply