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