一般网页登陆之后,账号和用户信息存储在哪?
是存储本地在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=??
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可以根据不同的用户数据产生,或者设置过期时间,就不复述了。
PHP中文网2017-04-10 15:21:40
可以是COOKIE。也可以是SESSION。
URL传递?通过很少这么做吧。用户禁用COOKIE才可能出现。
其他的HTML5的存储我们目前暂时不考虑
如果要安全要求高:强制使用SSL。其他方式基本都不太安全吧。
无论存Cookie。session.都有风险。