前端cookies问题,加密,防篡改

cookies是服务器发送并保存到客户端的一部分数据,用于存储用户信息,便于服务器识别用户,由于cookies可以在前端通过document.cookies获取到,所以就产生了被恶意篡改的漏洞,下面我们就了解一下如何对cookies信息进行加密防护,保证信息的安全;

本案例代码运行在node环境下

cookiesid+签名的方式避免被篡改cookie用户信息

var crypt={};
const KEY='afsaf$^&#gsfa@#';//用于生成签名的加密值

crypt.cryptUserId = function(userID){
    var crypto=require('crypto');
    var sign = crypto.createHmac('sha256',KEY);
    sign.update(userID +'');//将用户id拼接上一个空串,转换成字符串
    return sign.digest('hex');//转换成十六进制
}

module.exports=crypt;//将模块导出

使用sessionid的方式,不直接将用户id存储在cookie,进而避免信息篡改

var session={};
var cache={};
session.set=function(userID,obj){//obj={user:user.id}
    var sessionId=Math.random();
    if(!cache[sessionId]){
        cache[sessionId]={};
    }
    cache[sessionId].content=obj;//将用户id存储在cache中,用于后面通过sessionid获取用户信息
    return sessionId;
};

session.get=function(sessionId){
    // cache中存在sessionId,则返回它的content,否则返回undefined;
    return cache[sessionId] && cache[sessionId].content;
}

module.exports=session;

你可能感兴趣的:(浏览器缓存)